1

我需要选择某个类的元素,除了 $(this) 的子元素。诀窍是没有元素具有 id 属性,并且父元素和子元素的类相同,所以

<div class="onedoc">1
    <div class="onedoc">1.1
        <div class="onedoc">1.1.1</div>
    </div>
    <div class="onedoc">1.2</div>
</div>
<div class="onedoc">2</div>
<div class="onedoc">3</div>

在这个例子中,如果 $(this) 是 1(第一个元素),我需要选择包含 1.1.1、2 和 3 的元素

4

3 回答 3

4

像这样的东西应该工作:

$('.onedoc').not($(this).children());

演示

于 2012-06-18T07:57:50.233 回答
1
 $('.onedoc:not(:has(.onedoc))');

您可以通过执行以下操作指定目标:

 $('.onedoc:not(:has(.onedoc))', $target); // where $target is some element you selected

http://jsfiddle.net/HackedByChinese/PqxbL/

于 2012-06-18T08:05:13.490 回答
0

您可以使用jquery remove()http ://api.jquery.com/remove/ 。

选择所有onedoc元素,然后使用从 DOM 中删除子元素remove()

例如

$('.onedoc').remove($(this).children());

根据评论编辑:如果您不想包含节点本身,那么也将其删除:

$('.onedoc').remove($(this).children()).remove($(this));
于 2012-06-18T07:56:04.327 回答