jQuery阻止选择嵌套的div

时间:2013-05-21 22:20:30

标签: jquery jquery-selectors nested

我有以下HTML结构:

<div class="comment">
   ...
   <div class="comment">
   </div>
   ...
</div>

我需要选择带有“comment”类的父元素,但只选择主元素,而不是嵌套的元素。

问题是,我不能使用这样的东西:

$("parent > .comment")

因为main是以变量形式给出的。

6 个答案:

答案 0 :(得分:1)

您可以使用filter方法:

$('div.comment').filter(function(){
    return !$(this).parents('.comment').length;
});

或者:

$('div.comment').filter(function() {
    return !$(this.parentNode).closest('.comment').length;
});

http://jsfiddle.net/HYNAb/

答案 1 :(得分:0)

$('.comment').filter(function(){
  if($(this).closest('.comment').length > 0)
  return false;
})

答案 2 :(得分:0)

您可以尝试这样的事情:

$("div.comment").not("div.comment > div.comment")

答案 3 :(得分:0)

鉴于您提供的结构,只有一个嵌套级别,这有效:

$(".comment:has(.comment)")

它仅选择具有类comment且具有类comment

的子元素的元素

或者,如果要选择具有嵌套div的类comment的元素,则可以执行以下操作:

$(".comment:has(div)")

答案 4 :(得分:0)

如果嵌套的是直接子项,您应该能够使用:

$('.comment .comment').parent();

答案 5 :(得分:0)

尝试使用parents

$('.comment').parents('.comment');