부모의 jQuery 부모


93

현재 요소 부모의 부모를 찾으려고합니다. 에있는 링크를 클릭 <td>했고 <tr>개체 를 얻고 싶습니다 .

"$ (this) .parent (). parent ()"가 작동하지 않는 이유는 무엇입니까? 무엇을할까요?

감사합니다,
Brendan

편집 : 내 구문의 오류가 모든 것을 던지는 것처럼 보입니다. "$ (this) .parent (). parent ()"는 실제로 작동하지만 가장 효율적인 솔루션처럼 보이기 때문에 $ (this) .closest ( 'tr') "를 사용했습니다.


1
부모 선택기가 작동하지 않는 이유를 알 수 있도록 코드를 게시 할 수 있습니까?
TStamper 2009-06-08

답변:


221

가장 좋은 방법은 다음을 사용하는 것입니다 closest.

$(this).closest('tr');

설명서를 확인하십시오 .

Closest는 먼저 현재 요소를보고 지정된 표현식과 일치하는지 확인하여 작동합니다. 그렇다면 요소 자체를 반환합니다. 일치하지 않으면 지정된 표현식과 일치하는 요소를 찾을 때까지 부모별로 문서를 계속 탐색합니다. 일치하는 요소가 없으면 아무것도 반환되지 않습니다.


20

작동합니다. $ (this) .parents (tag)를 시도 할 수도 있습니다. 여기서 tag는 찾으려는 태그입니다.

예를 들면 :

$(this).parents("tr:first")

가장 가까운 tr "up the chain"을 찾을 수 있습니다.


9

작동합니다 ... 시도해 볼 수 있습니다

$(this).parents(':eq(1)');

.parents (selector)는 선택자와 일치하는 모든 조상을 가져옵니다.

그리고 : eq (1)은 목록에서 첫 번째 요소 (인덱스가 0이므로 두 번째)를 찾습니다.


html 앵커 태그인지 확인하기 위해이를 경고 할 수 있습니다. 시도해보십시오 : alert ( 'anchor html ('+ $ (this) .html () + ')');
Lathan 2009-06-08

6

이 스 니펫은 과거에 저를 위해 수행되었습니다.

$(this).parent().parent(); 

어딘가에 다른 문제가 있는지 확인하기 위해 코드를 게시하십시오.


동의합니다. 내가 사용할 수 있습니다 $(this).parent().parent()문제없이
DrewT

5

또한 시도

$(this).closest('div.classname').hide();

2

부모에 대한 어떤 종류의 ID / 클래스가 있으면 부모 ()를 사용할 수 있지만 filter () 또는 다른 방법으로 중지하지 않는 한 모든 부모를 <body>까지 줄 것입니다.

$(this).parents('.myClass');

이것이 누군가를 돕기를 바랍니다 :)


1

$ (this) .parent ()를 $ ($ (this) .parent ())와 같은 jQuery 객체로 래핑 해보십시오. 유효한 jquery 객체가 있는지 확인하기 위해이 작업을 수행해야하는 경우가 종종 있습니다. 거기에서 부모 부모를 확보하거나 prev ()를 사용할 수 있습니다.


8
이것은 완전히 무의미합니다. 당신이하는 일은 다른 jQuery 객체를 만들어서 시간을 낭비하는 것뿐입니다 ...
James

1
var getParentNode = function(elem, level) { 
    level = level || 1; 
    for (var i = 0; i < level; i++) {
        if (elem != null) {
            elem = elem.parentNode; 
        }
    }
    return elem; 
}

0

.closest() 동일한 요소 구성이있을 때 항상 최선의 선택은 아닙니다.

<div>
    <div>
        <div>
        </div>
    </div>
</div>

부모의 부모를 할 수 있으며 매우 쉽습니다.

var parent = $('.myDiv').parent();
var parentParent = $(parent).parent();
var parentParentParent = $(parentParent).parent();

기타

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.