jquery:选择除了自己孩子之外的元素

时间:2012-06-18 07:52:40

标签: jquery

我需要选择某个类的元素,除了$(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的元素

3 个答案:

答案 0 :(得分:4)

这样的事情应该有效:

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

DEMO

答案 1 :(得分:1)

 $('.onedoc:not(:has(.onedoc))');

您可以通过以下方式指定目标:

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

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

答案 2 :(得分:0)

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

选择所有onedoc元素,然后使用remove()

从DOM中删除子元素

e.g。

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

根据评论进行编辑:如果您不想包含节点本身,请将其删除:

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