我想知道DOM元素a是否包含DOM元素b(即,如果a是DOM树中b的祖先)。因此,像:
$(b).closest(a);
但是'a'在这里是一个DOM节点,而不是选择器。
jQuery可以帮忙吗?我可以找到的所有有用的函数都使用选择器字符串而不是元素,如果你的DOM元素是匿名的,那么它们确实无济于事。
答案 0 :(得分:1)
以下是Traversing的文档。我建议您使用:
答案 1 :(得分:0)
啊哈,我在搜索时失败了但是一位同事发现答案已经在Testing objects for ancestor/descendent relationship in JavaScript or Jquery,但问题是以一种不同的方式提出来,我没有找到它:
if ($(obj1).parents().index(obj2) >= 0) {
// obj1 is a descendant of obj2
}
仍然没有我期望的那么高效(但是'找到所有的父母,然后检查一场比赛',而不是'加强树寻找比赛')。
还有 http://plugins.jquery.com/project/ancestry,它提供了我正在谈论的功能。
更新
if($(obj1).parents.eq(obj2)) { ...
也有效,并且略微整洁。父列表不太可能那么长,所以这应该是相当有效的。