如何检查一个DOM元素是否是另一个DOM元素的子元素?有内置的方法吗?例如,类似:
if (element1.hasDescendant(element2))
要么
if (element2.hasParent(element1))
如果没有,那么有什么想法怎么做?它还需要跨浏览器。我还应该提到,孩子可以嵌套在父级以下的多个级别。
更新:现在有一种本地方法可以实现此目的。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] 删除。
我来说两句