2011-01-17 4 views
39

분명히 작동하지 않지만 어떻게 li 요소를 가져 옵니까? 내가 사용하고 싶지 않은 : 나는 그것을 사용하지 않을JQuery, 부모 찾기

$('#this').parent().parent().parent(); 

, 대신 두, 하나 개의 div 요소가 있다는 것을 일어날 수 있기 때문이다. 이 경우 li 요소 대신 ul 요소를 가져옵니다.

답변

76
$('#thisid').parents('li'); 
//    ^plural! 

사용 주 :

$('#thisid').closest('li'); 

// `closest()` is equivalent to (but performs better than) 
$('#thisid').parents('li').eq(0); 
$('#thisid').parents('li').first(); 
+2

문서 순서, 원래 세트의 각 요소에 대해 0 또는 1 요소를 포함 : 가장 가까운

. – Moses

+0

단 하나의 "parent()"*가 유효한 함수 호출임을 명확히 밝히고 싶었습니다. 그것은 단지 질문자가 필요로하는 것을하지 않습니다. – mwardm

1

간단한, 당신은 조상의 첫 번째 <li> 요소를 원한다면, 당신은 closest()를 사용해야 parents()

var parents = $("#thisid").parents('li'); 
2
$('#thisid').parents('li:eq(0)'); 

그것을해야한다. 그러면 검색중인 태그와 일치하는 첫 번째 (:eq(0)) 부모가 생깁니다.

6
$('#thisid').parents('li') 

은 또는 당신은 단지 첫 번째하려는 경우 :

$('#thisid').closest('li') 
0

당신은 실제로 $("#thisid").closest('li')를 사용할 수 있습니다. 이렇게하면 선택된 노드의 DOM 트리를 가로 지르고 첫 번째 일치하는 조상을 반환하는 반면 .parents()은 부모 노드에서 이동하고 해당 필터와 일치하는 모든 조상 노드를 반환합니다. 자세한 내용은 here을 참조하십시오.

1

나는 '부모'보다 '가장 가까운'것을 선호합니다.

학부모는 DOM 트리를 문서의 루트 요소로 이동하여 각 조상 요소를 임시 컬렉션에 추가합니다. 그런 다음 선택기가 제공되면 선택기를 기반으로하여 해당 모음을 필터링합니다.

가장 가까운 여행까지 DOM 트리가 공급 선택에 대한 일치하는 항목을 찾을 때까지

. 그들은 결과에주는 것을 가장 중요한 역할을 한

:

Praents : 반환의 jQuery 객체가 역 문서 순서에서 원래 세트의 각 요소에 대해 0 개 이상의 요소가 포함되어 있습니다. 반환의 jQuery 객체가 네 예는 좋은 솔루션입니다

$('#thisid').closest('li'); 

Follow this Link