2012-06-18 2 views
1

$ (this)의 하위 클래스를 제외한 특정 클래스의 요소를 선택해야합니다. $ (이) (1) (첫 번째 요소) 인 경우 그 트릭은, 내가 선택해야하므로, 어떤 요소는 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, 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

사실 나는 @ Anthony의 답을 선호한다 - 내 것보다 조금 더 최적 일지 모른다. –

+0

메시지 : 객체가 'replace'속성 또는 메서드를 지원하지 않습니다 ... – DMIL

+0

을 다시 입력해도 동일한 자바 스크립트 오류가 발생합니다. 객체가 'replace'속성 또는 메서드를 지원하지 않습니다. – DMIL

관련 문제