我想检查一个元素是否具有某个类的父/祖父母。我的代码无法正常工作:
js fiddle
JavaScript:
$("body").on("click", function (e) {
if ($(e.target).parents(".granny")) alert("you have a granny");
});
最佳答案
if( $(e.target).parents(".granny") )
始终为true,因为您正在检查jQuery对象,这是一个真实值。
检查length属性:
if( $(e.target).parents(".granny").length )
搜索父项时,
closest()
可能会很有趣,因为它更快。它不会遍历所有父母,一旦找到匹配项便会停止。虽然
parents
直到到达文档的根目录才停止,但.parents()
并不包含目标本身。这意味着您在使用.granny
时直接单击e.target
(它成为closest
),警报会弹出,而parents
不会。知道这一点,您是真正需要哪种方法的唯一专家。
关于javascript - 无法检查特定的父元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23389757/