在jquery中我可以将“nearest”或Parents()与“hasClass”组合在一起,所以如果它存在于页面上,它会给我一个与给定类最接近的元素吗?
var matchingDiv = $(this).closest('div').hasClass('SomeClass')
if ( matchingDiv != null )
{
//we found matching element now manipulate it
}
我将始终拥有一个匹配的div元素,或者没有。 感谢。
答案 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)
var matchingDiv = &(this).closest('.SomeClass')
if ( matchingDiv != null )
{
//we found matching element now manipulate it
}
答案 6 :(得分:0)
nearest()和parents()之间的区别在于,如果您的选择器匹配多个,则parents()可以为您提供多个元素。 (这是值得的)