Javascript 无法检查特定的父元素
我想检查元素是否有具有特定类的父/祖父母。我的代码无法正常工作: JavaScript:Javascript 无法检查特定的父元素,javascript,jquery,html,Javascript,Jquery,Html,我想检查元素是否有具有特定类的父/祖父母。我的代码无法正常工作: JavaScript: $("body").on("click", function (e) { if ($(e.target).parents(".granny")) alert("you have a granny"); }); if($(e.target).parents(“.granny”)将始终为真,因为您正在检查jQuery对象,它是一个真实值 改为检查length属性: if( $(e.target).p
$("body").on("click", function (e) {
if ($(e.target).parents(".granny")) alert("you have a granny");
});
if($(e.target).parents(“.granny”)
将始终为真,因为您正在检查jQuery对象,它是一个真实值
改为检查length属性:
if( $(e.target).parents(".granny").length )
当寻找父母时,可能会很有趣,因为它的速度快得多。它不会在所有父母之间循环,一旦找到匹配项,它就会停止
虽然parents
在到达文档根目录之前不会停止,但是.parents()
不包括目标本身。这意味着,如果您直接单击.granny
(它将成为e.target
),在使用最近的时,警报将弹出,而家长则不会
知道了这一点,你才是真正需要什么方法的唯一关键。if($(e.target)。parents(“.granny”)
将始终为真,因为你正在检查jQuery对象,这是一个真实的值
改为检查length属性:
if( $(e.target).parents(".granny").length )
当搜索父对象时,可能会很有趣,因为它要快得多。它不会在所有父母之间循环,一旦找到匹配项,它就会停止
虽然parents
在到达文档根目录之前不会停止,但是.parents()
不包括目标本身。这意味着,如果您直接单击.granny
(它将成为e.target
),在使用最近的时,警报将弹出,而家长则不会
知道了这一点,你才是真正需要什么方法的唯一决定者。当你使用最接近()
时,一旦出现匹配,它就会停止
$("body").on("click", function(e){
if( $(e.target).closest(".granny").length ){
alert("you have a granny");
}
});
当您使用最接近()
时,一旦出现匹配,它就会停止
$("body").on("click", function(e){
if( $(e.target).closest(".granny").length ){
alert("you have a granny");
}
});
使用.granny代替granny它仍然不起作用。使用.granny代替granny它仍然不起作用。正如Frédéric Hamidi在我的回答中删除的评论中所述,。最近的包括元素本身,而。parents
不包括元素本身。从技术上讲,如果你点击奶奶,她没有奶奶(她就是奶奶)。OP可能不希望这样。正如Frédéric Hamidi在我的回答中删除的评论中所说,。最近的
包括元素本身,而。父母
不包括。从技术上讲,如果你点击奶奶,她没有奶奶(她就是奶奶)。OP可能不希望这样。