简体   繁体   English

如何在 JavaScript 中定位具有不同 class 名称的兄弟姐妹

[英]How to target siblings with different class name in JavaScript

How can target class="a-2" inside id="b" by clicking on class="a-1" also inside id="b"?如何通过在 id="b" 中单击 class="a-1" 来定位 id="b" 中的 class="a-2"?

<div id="a">
    <div class="a-1"></div>
    <div class="a-2"></div>
</div>
<div id="b">
    <div class="b-1"></div>
    <div class="b-2"></div>
</div>
<div id="c">
    <div class="c-1"></div>
    <div class="c-2"></div>
</div>

You can always go through the parent:您始终可以通过父级 go :

element.parentNode.querySelector('.a-2')

You can select all sibling nodes by selecting all children of the parent of the clicked node and then filter out the node that is clicked.您可以通过选择被点击节点的父节点的所有子节点,然后过滤掉被点击的节点,来 select 所有兄弟节点。

 const el = document.querySelectorAll('div > div'); const siblings = function(el) { const nodes = el.parentNode.children; return [...nodes].filter(node => node.== el) } el.forEach(function(e) { e,addEventListener('click'. function() { siblings(this).forEach(node => { console.log(node.textContent) }) }) })
 <div id="a"> <div class="a-1">a</div> <div class="b-2">b</div> <div class="c-2">c</div> </div> <div id="b"> <div class="a-1">a</div> <div class="b-2">b</div> </div> <div id="c"> <div class="a-1">a</div> <div class="b-2">b</div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM