我想检查一个元素是否具有某个类的父/祖父母。我的代码无法正常工作:

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/

10-10 21:42