一尘不染

有没有办法选择同级节点?

javascript

由于某些性能原因,我试图找到一种仅选择所选节点中同级节点的方法。例如,

 <div id="outer">
      <div id="inner1"> </div>
      <div id="inner2"> </div>
      <div id="inner3"> </div>
      <div id="inner4"> </div>
 </div>

如果选择了inner1节点,是否可以访问其兄弟inner2-4节点?


阅读 326

收藏
2020-05-01

共1个答案

一尘不染

好吧…确定…先拜访父母,再拜访孩子。

 node.parentNode.childNodes[]

或者…使用jQuery:

$('#innerId').siblings()

编辑:Cletus一如既往地鼓舞人心。 我进一步挖掘。这就是jQuery本质上如何获得兄弟姐妹的方式:

function getChildren(n, skipMe){
    var r = [];
    for ( ; n; n = n.nextSibling ) 
       if ( n.nodeType == 1 && n != skipMe)
          r.push( n );        
    return r;
};

function getSiblings(n) {
    return getChildren(n.parentNode.firstChild, n);
}
2020-05-01