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

我有一个根据此路径定位的类^ ...我怎样才能通过dom循环以更好的代码可读性自动执行此过程?如果在它遇到null之前没有找到.hasclass,那么只需返回false。自动化父级层次结构

回答

1

你就不能与替换此...

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

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

+0

感谢您的答复,我喜欢这里的逻辑/语法,但它是不是真的是我正在寻找已建立的现有代码库。 – Reaper

+0

@Reaper我看到;你可能只想得到那个元素,而不是去检查它是否存在。在这种情况下,简单的'$('.frame')。closest('。class')'就足够了。 – raina77ow

1

你可以尝试成才这样的: VAR classFind = $最接近( “类”);( '框架')。

+0

这是非常有用的,并与现有的代码库完美配合。谢谢! – Reaper

0

与最接近的功能,您将无法获得确切的5个父母,如果是你想要的...

这个选择会做到这一点。

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

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

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