[英]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.