jquery - 使用 JQuery 选择非嵌套子节点

标签 jquery tree-traversal

我有一个 HTML 结构,其中包含带有 container 类的嵌套 div:

<div class="container" id="0">
  <div id="1">
    <div class="container" id="2">
      <div class="container" id="3"></div>
    </div>
    <div id="4">
      <div class="container" id="5"></div>
    </div>
  </div>
</div>

这可能包括更多的 div 和更深/不同的嵌套。

从树中的某个点开始,我想找到该子树中未嵌套在其他容器中的所有容器。例如,从 div #1 中,我想找到 div #2#5,但不是 #3 (因为它嵌套在已找到的容器 #2 中)。

实现这一目标的最佳方法是什么?

最佳答案

function getOuterContainers(el) {

    if (el.length == 0)
        return $([]);
    else
        return el.children('.container').add( getOuterContainers(el.children(':not(.container)')) );

}

查看一下:http://jsfiddle.net/GZ3Tx/

关于jquery - 使用 JQuery 选择非嵌套子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4727995/

相关文章:

data-structures - 遍历树:哪个定义正确?

jquery:如何在 sibling 之前添加一个项目?

javascript - 如何使 Iframe 中的事件与处理程序一起工作?

ajax - Javascript (jQuery) 发布到 PHP,未解析空属性

c++ - 如何获取列表中有子节点的树的节点总和?

c++ - 二叉树的前序遍历可视化

jquery - 对绝对定位的 div 进行动画处理,但如果条件成立则停止?

jquery - 在随机列表项上添加类

Python - 树遍历问题

c - 如何在不使用递归和层序遍历的情况下求二叉树的高度?