如何在Javascript中检查一个元素是否包含在另一个元素中

AJ。

如何检查一个DOM元素是否是另一个DOM元素的子元素?有内置的方法吗?例如,类似:

if (element1.hasDescendant(element2)) 

要么

if (element2.hasParent(element1)) 

如果没有,那么有什么想法怎么做?它还需要跨浏览器。我还应该提到,孩子可以嵌套在父级以下的多个级别。

Asaph:

更新:现在有一种本地方法可以实现此目的。Node.contains()在评论中也提到了答案。

旧答案:

使用该parentNode属性应该可以。从跨浏览器的角度来看,它也是非常安全的。如果已知这种关系是深层次的,则可以简单地检查一下:

if (element2.parentNode == element1) { ... }

如果可以将孩子任意地嵌套在父对象的深处,则可以使用类似于以下内容的函数测试这种关系:

function isDescendant(parent, child) {
     var node = child.parentNode;
     while (node != null) {
         if (node == parent) {
             return true;
         }
         node = node.parentNode;
     }
     return false;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查ArrayList的元素是否全部包含在另一个ArrayList中

如何在 Python 中检查列表的每个元素,是否包含在另一个列表中?

检查数组的元素是否包含在另一个数组的元素中

检查数组的所有元素是否包含在另一个数组中

Javascript检查对象数组的每个元素是否包含在另一个数组中

检查元素是否包含在 xml c# 中具有特定标记的另一个元素

检查一个列表是否包含另一个列表中的元素

检查对象是否包含JavaScript中另一个对象的任何元素

检查一个列表项是否包含在另一个列表中

检查一个数组中的所有元素是否都包含在另一个数组中

如何检查一个文件的内容是否包含在ruby中的另一个文件中

如何删除一个列表中未包含在另一个列表中的元素?

如何在sqlite中查找列表是否包含另一个列表的任何元素

如何检查一个文件的值是否包含在另一个文件的值中?

如何确定一个列表中的元素是否包含在另一个列表中?(在OpenOffice Calc中)

如何获得列表中的n个元素而不包含在另一个元素中?

检查一个元素在CSS中是否还有另一个元素

选择熊猫行,如果行元素包含在另一个行元素中

如何使用Java检查Selenium Webdriver中另一个元素中是否存在一个元素?

javascript检查另一个数组中是否包含1个数组的元素

如何在JavaScript中检查一个DateTime是否晚于另一个

如何检查我的 SQL 数组中的特定元素是否后跟另一个元素?

如何检查数组中的元素是否被另一个特定元素包围

检查Vec是否包含另一个Vec中的所有元素

检查列表是否包含另一个列表中存在的所有类型的元素

检查列表数组是否包含另一个列表中的元素

检查ArrayList是否包含另一个ArrayList(或Collection)中的每个元素

检查列表列表中的元素是否包含另一个列表

如何检查一个元素是否存在于另一个元素在Jquery中?