dre*_*sch 17 javascript jquery dom
我试图想出一个可重用的JS或jQuery函数,它允许我测试一个对象是否是另一个对象的DOM后代.
我见过一个测试模型
$b.parents('nodename').length>0
Run Code Online (Sandbox Code Playgroud)
当您只需要通过该名称检查元素是否是任何节点的子元素时,这非常棒.
但是特定节点怎么样?你无法测试
$b.parents($a).length>0
Run Code Online (Sandbox Code Playgroud)
因为jQuery父类将一个节点表达式作为参数进行过滤.
作为一个小背景,我试图测试文档点击事件的目标是否是特定对象的子项.例如,如果event.target是$ b的子节点,则返回true,否则返回false.但是这个功能可能会在以后产生其他影响.
谢谢!
Ale*_*dev 22
a.contains(b)
Run Code Online (Sandbox Code Playgroud)
这是一个使用Node.contains的纯JavaScript解决方案.该函数包含在内,a.contains(a)计算结果为true.
IE9中有一个边缘情况:如果b是文本节点,contains则总是返回false.
Gar*_*eth 13
在我建议的jQuery祖先使用jQuery对象
if ($(obj1).parents().index($(obj2)) >= 0) {
// obj1 is a descendant of obj2
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6880 次 |
| 最近记录: |