自动化父级层次结构

时间:2012-12-12 15:53:34

标签: javascript jquery asp.net dom loops

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

我有一个根据这条路径定位的类^ ...我怎么能循环通过dom来自动化这个过程,具有更好的代码可读性?如果在遇到null之前找不到.hasclass,则只返回false。

3 个答案:

答案 0 :(得分:1)

你不能用...替换它吗

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

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

答案 1 :(得分:1)

您可以尝试这样的事情: var class Find = $('。frame')。nearest(“。class”);

答案 2 :(得分:0)

使用最接近的功能,如果你想要的话,你就不会得到5个父母......

此选择器将执行此操作。

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

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

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