无法检查特定的父元素
Cannot check for specific parent element
我想检查一个元素是否有一个具有特定类的父/祖父。我的代码无法正常工作:
js小提琴
JavaScript:
$("body").on("click", function (e) {
if ($(e.target).parents(".granny")) alert("you have a granny");
});
if( $(e.target).parents(".granny") )
将始终为true,因为您正在检查jQuery对象,这是一个truthy值。
请改为检查长度属性:
if( $(e.target).parents(".granny").length )
当搜索父对象时,closest()
可能很有趣,因为它要快得多。它不会在所有父母中循环,一旦找到匹配项就会停止。
虽然parents
在到达文档根之前不会停止,但.parents()
不包括目标本身。这意味着你在使用closest
时直接点击.granny
(它变成了e.target
(,警报会弹出,而parents
不会。
知道这一点,你是唯一一个知道你真正需要什么方法的人。
使用closest()
时,一旦匹配,它就会停止。
$("body").on("click", function(e){
if( $(e.target).closest(".granny").length ){
alert("you have a granny");
}
});
小提琴
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 用于检查数组中是否存在元素的javascript自定义方法
- 检查元素是如何获得焦点的
- 如何检查元素的内容是否为空,如果为空,请在jquery中删除该元素
- 在验证器中添加自定义规则以检查<ul>具有元素
- 如何检查元素是否在iframe中
- 使用 jQuery 检查元素的数量
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 检查元素是否将状态从隐藏更改为可见
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- JS触发器值检查在文档加载后添加到页面的元素在加载时更改AND
- 如何设置第一个子元素's的单选按钮已在轨道上检查4
- 检查元素hasClass是否添加了AJAX
- 如何根据数组中的元素检查字符串
- jQuery根据类中的其他元素检查每个元素
- Javascript合并两个函数,用另一个元素检查节点类型
- 不能得到ajax得到显示在页面,但可以看到在谷歌元素检查器
- 使用inspect元素检查是否修改了代码
- 模拟webkit的元素检查器
- 如何使用元素检查器在网站上运行我自己的事件处理Javascript代码