부모의 jQuery 부모
현재 요소 부모의 부모를 찾으려고합니다. 에있는 링크를 클릭 <td>
했고 <tr>
개체 를 얻고 싶습니다 .
"$ (this) .parent (). parent ()"가 작동하지 않는 이유는 무엇입니까? 무엇을할까요?
감사합니다,
Brendan
편집 : 내 구문의 오류가 모든 것을 던지는 것처럼 보입니다. "$ (this) .parent (). parent ()"는 실제로 작동하지만 가장 효율적인 솔루션처럼 보이기 때문에 $ (this) .closest ( 'tr') "를 사용했습니다.
가장 좋은 방법은 다음을 사용하는 것입니다 closest
.
$(this).closest('tr');
Closest는 먼저 현재 요소를보고 지정된 표현식과 일치하는지 확인하여 작동합니다. 그렇다면 요소 자체를 반환합니다. 일치하지 않으면 지정된 표현식과 일치하는 요소를 찾을 때까지 부모별로 문서를 계속 탐색합니다. 일치하는 요소가 없으면 아무것도 반환되지 않습니다.
작동합니다. $ (this) .parents (tag)를 시도 할 수도 있습니다. 여기서 tag는 찾으려는 태그입니다.
예를 들면 :
$(this).parents("tr:first")
가장 가까운 tr "up the chain"을 찾을 수 있습니다.
작동합니다 ... 시도해 볼 수 있습니다
$(this).parents(':eq(1)');
.parents (selector)는 선택자와 일치하는 모든 조상을 가져옵니다.
그리고 : eq (1)은 목록에서 첫 번째 요소 (인덱스가 0이므로 두 번째)를 찾습니다.
이 스 니펫은 과거에 저를 위해 수행되었습니다.
$(this).parent().parent();
어딘가에 다른 문제가 있는지 확인하기 위해 코드를 게시하십시오.
또한 시도
$(this).closest('div.classname').hide();
부모에 대한 어떤 종류의 ID / 클래스가 있으면 부모 ()를 사용할 수 있지만 filter () 또는 다른 방법으로 중지하지 않는 한 모든 부모를 <body>까지 줄 것입니다.
$(this).parents('.myClass');
이것이 누군가를 돕기를 바랍니다 :)
$ (this) .parent ()를 $ ($ (this) .parent ())와 같은 jQuery 객체로 래핑 해보십시오. 유효한 jquery 객체가 있는지 확인하기 위해이 작업을 수행해야하는 경우가 종종 있습니다. 거기에서 부모 부모를 확보하거나 prev ()를 사용할 수 있습니다.
var getParentNode = function(elem, level) {
level = level || 1;
for (var i = 0; i < level; i++) {
if (elem != null) {
elem = elem.parentNode;
}
}
return elem;
}
.closest()
동일한 요소 구성이있을 때 항상 최선의 선택은 아닙니다.
<div>
<div>
<div>
</div>
</div>
</div>
부모의 부모를 할 수 있으며 매우 쉽습니다.
var parent = $('.myDiv').parent();
var parentParent = $(parent).parent();
var parentParentParent = $(parentParent).parent();
기타
참고 URL : https://stackoverflow.com/questions/966408/jquery-parent-of-a-parent
'Programing' 카테고리의 다른 글
한 목록에 다른 요소가 포함되어 있는지 확인 (0) | 2020.08.29 |
---|---|
Vue.js를 다른 페이지로 리디렉션 (0) | 2020.08.29 |
Xcode에서 후행 공백 제거 (0) | 2020.08.29 |
루비의 디렉토리를 재귀 적으로 나열하는 한 줄? (0) | 2020.08.29 |
LINQ to SQL은 Dead 또는 Alive입니까? (0) | 2020.08.28 |