我有以下 HTML 结构:
<div class="comment">
...
<div class="comment">
</div>
...
</div>
我需要选择带有“comment”类的父元素,但只有主元素,而不是嵌套元素。
问题是,我不能使用这样的东西:
$("parent > .comment")
因为主要是在变量中给出的。
我有以下 HTML 结构:
<div class="comment">
...
<div class="comment">
</div>
...
</div>
我需要选择带有“comment”类的父元素,但只有主元素,而不是嵌套元素。
问题是,我不能使用这样的东西:
$("parent > .comment")
因为主要是在变量中给出的。
您可以使用filter
方法:
$('div.comment').filter(function(){
return !$(this).parents('.comment').length;
});
或者:
$('div.comment').filter(function() {
return !$(this.parentNode).closest('.comment').length;
});
你可以尝试这样的事情:
$("div.comment").not("div.comment > div.comment")
鉴于您提供的结构,只有一个嵌套级别,这是有效的:
$(".comment:has(.comment)")
它只选择具有类的元素comment
,这些元素具有类的子元素comment
或者,如果你想选择comment
具有嵌套 div 的类的元素,你可以这样做:
$(".comment:has(div)")
如果嵌套的是直接子级,您应该能够使用:
$('.comment .comment').parent();
$('.comment').filter(function(){
if($(this).closest('.comment').length > 0)
return false;
})
尝试使用父母:
$('.comment').parents('.comment');