jquery hasClass匹配元素

时间:2010-02-08 19:47:29

标签: jquery jquery-selectors

在jquery中我可以将“nearest”或Parents()与“hasClass”组合在一起,所以如果它存在于页面上,它会给我一个与给定类最接近的元素吗?

var matchingDiv = $(this).closest('div').hasClass('SomeClass')

if ( matchingDiv != null )
{
   //we found matching element now manipulate it

}

我将始终拥有一个匹配的div元素,或者没有。 感谢。

7 个答案:

答案 0 :(得分:5)

var matchingDiv = $(this).closest('div.SomeClass')

if ( matchingDiv.length )
{
   // use length to find if there was a match.
   // closest() will always return an object.
}

如果这不起作用,也许发布一些HTML。也许那里有问题?

答案 1 :(得分:1)

试试这个,最接近选择器:

var matchingDiv = $(this).closest('div.SomeClass')

if ( matchingDiv != null )
{
   //we found matching element now manipulate it

}

答案 2 :(得分:1)

Closest选择了一个选择器,你可以这样做:

 var matchingDiv = $(this).closest('div.SomeClass')

您的下一行是个问题,您should正在检查jQuery结果,如下所示:

if ( matchingDiv.length )
{
    //we found matching element now manipulate it
}

答案 3 :(得分:1)

如果您需要检查当前元素本身是否是您正在寻找的祖先..您可以使用is()closest()的组合,如下所示:

var matchingDiv = $(this).closest('.SomeClass');

matchingDiv = matchingDiv.length == 0 ? (matchingDiv.is('.SomeClass') ? matchingDiv : null) : matchingDiv

if ( matchingDiv != null )
{
   //found matching element 

}

答案 4 :(得分:0)

您是否在询问这是否有效?

在我的头脑中,我会说它确实如此,因为jQuery范例是基于将jQuery函数链接在一起。

答案 5 :(得分:0)

doc for closest

var matchingDiv = &(this).closest('.SomeClass')

if ( matchingDiv != null )
{
   //we found matching element now manipulate it

}

答案 6 :(得分:0)

nearest()和parents()之间的区别在于,如果您的选择器匹配多个,则parents()可以为您提供多个元素。 (这是值得的)