javascript - 有没有办法选择兄弟节点?

标签 javascript dom siblings

出于某些性能原因,我试图找到一种方法来仅选择所选节点的兄弟节点。

例如,

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

如果我选择了 inner1 节点,有没有办法让我访问它的兄弟节点,inner2-4 节点?

最佳答案

好吧......当然......只需访问父级,然后是子级。

 node.parentNode.childNodes[]

或者...使用 jQuery:

$('#innerId').siblings()

编辑:Cletus 一如既往地鼓舞人心。我进一步挖掘。这就是 jQuery 本质上获取 sibling 的方式:

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);
}

关于javascript - 有没有办法选择兄弟节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/842336/

相关文章:

javascript - 当指针距离浏览器窗口底部 X 单位时触发鼠标事件

javascript - 使用点击功能检查多个div中的数据属性值

JavaScript JS 可选

javascript - 使用 JQuery 打开和关闭 span 标签

jquery - 在 jQuery 中,要选择节点的第 n 个兄弟节点,是 .next() 链接 n 次还是 .nextAll (':eq(n-1)' ) 更快?

javascript - 在具有类别的表上方最近的 H3

JavaScript:字符串操作

javascript - 警报 ("Hi!") 和 function(){警报 ("Hi!")} 之间的区别

IFRAME 完成加载时的 Javascript 回调?

jquery - 如何使用 jQuery 只选择一个同级?