0
var classFind= $('.frame').parent().parent().parent().parent().parent();
if (classfind.hasClass(".class")) {
            return true;
        }

我有一个根据此路径定位的类^...我如何循环通过 dom 以更好的代码可读性自动执行此过程?如果它在命中 null 之前没有找到 .hasclass,那么只需返回 false。

4

3 回答 3

1

你不能把这个换成...

return !!$('.frame').closest('.class').length;

这些closest方法沿着 DOM 树向上移动,直到找到与作为其参数给出的选择器匹配的元素 - 然后立即停止;如果没有找到这样的元素,它将返回空的元素集合(它仍然是一个对象,因此应该检查它的长度)。与call!!相同Boolean()- 它不是必需的,但会使您的函数返回布尔值 ( true/false) 而不是0/1.

于 2012-12-12T15:55:10.673 回答
1

你可以尝试这样的事情: var classFind= $('.frame').closest(".class");

于 2012-12-12T15:55:47.663 回答
0

使用最接近的功能,您不会得到确切的 5 个父母,如果这是您想要的...

该选择器将执行此操作。

function findEl() {
    if($('.class > * > * > * > * > .frame').length > 0) {
        return true;
    }
    return false;
}

测试它:http: //jsfiddle.net/S5juG/1/

看看子选择器: http ://api.jquery.com/child-selector/

于 2012-12-12T16:10:54.427 回答