gpt4 book ai didi

javascript - 在 JavaScript 或 Jquery 中测试对象的祖先/后代关系

转载 作者:行者123 更新时间:2023-12-03 21:53:59 25 4
gpt4 key购买 nike

我正在尝试提出一个可重用的 JS 或 jQuery 函数,它允许我测试一个对象是否是另一个对象的 DOM 后代。

我见过一个测试模型

$b.parents('nodename').length>0

当您只需要检查某个元素是否是该名称的任何节点的子元素时,这非常棒。

但是特定节点呢?您无法测试

$b.parents($a).length>0

因为 jQuery 父级将节点名表达式作为过滤器的参数。

作为一点背景知识,我正在尝试测试文档单击事件的目标是否是特定对象的子级。例如,如果 event.target 是 $b 的子级,则返回 true,否则返回 false。但此功能稍后可能会产生其他影响。

谢谢!

最佳答案

a.contains(b)

这是一个纯 JavaScript 解决方案,使用 Node.contains 。该函数是包容性的,a.contains(a) 的计算结果为 true。

IE9 中有一个边缘情况:如果 b 是文本节点,contains 将始终返回 false。

关于javascript - 在 JavaScript 或 Jquery 中测试对象的祖先/后代关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/287875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com