2012-06-18 80 views
1

我需要選擇某個類的元素,除了$(this)的子元素。關鍵是沒有元素有一個id屬性和父和子元素的類都是一樣的,所以jquery:選擇自己的孩子以外的元素

<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> 
在這個例子中

,如果$(這)是1(第一個元素),我需要選擇包含1.1.1,2和3的元素

+0

'1.1.1'是'1'盛大的孩子。你的意思是,選擇沒有孩子的元素? –

+0

@FabrícioMatté:我認爲他的意思是孩子是直系後代,而不是那些更下線的人。 –

+1

@JonEgerton認爲是這樣,但是'1.1.1,2和3'不會包含'$(this)'。這是預期的行爲? –

回答

4

像這樣的東西應該工作:

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

DEMO

+0

但是第一個元素沒有(也不能)有一個id(重新演示) – DMIL

+0

@DMIL這個ID就是在那裏,所以演示可以模擬已經可以訪問'this',這是問題隱含的已經知道了。 –

+0

這很好,乾淨,你可以參考它[沒有ID以及](http://jsfiddle.net/ult_combo/6FDMd/1/)。 –

0

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

選擇所有onedoc元素,然後使用remove()

例如除去從DOM子元素

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

編輯按註釋:如果不希望包括節點本身,然後刪除它:

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

其實我更喜歡@安東尼的回答 - 可能會比我更優。 –

+0

消息:對象不支持屬性或方法'替換'...即使我鍵入刪除 – DMIL

+0

同樣的Javascript錯誤:對象不支持屬性或方法'替換' – DMIL