0

我有以下 HTML 结构:

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

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

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

$("parent > .comment")

因为主要是在变量中给出的。

4

6 回答 6

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/

于 2013-05-21T22:22:34.207 回答
0

你可以尝试这样的事情:

$("div.comment").not("div.comment > div.comment")
于 2013-05-21T22:28:39.680 回答
0

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

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

它只选择具有类的元素comment,这些元素具有类的子元素comment

或者,如果你想选择comment具有嵌套 div 的类的元素,你可以这样做:

$(".comment:has(div)")
于 2013-05-21T22:29:27.577 回答
0

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

$('.comment .comment').parent();
于 2013-05-21T22:35:58.133 回答
0
$('.comment').filter(function(){
  if($(this).closest('.comment').length > 0)
  return false;
})
于 2013-05-21T22:23:36.103 回答
0

尝试使用父母

$('.comment').parents('.comment');
于 2013-05-21T22:37:46.603 回答