[英]jQuery parent of a parent
我目前正在嘗試查找元素的父級的父級。 我在<td>
有一個被點擊的鏈接,我想獲得<tr>
對象。
為什么“$(this).parent().parent()”不起作用? 什么會?
謝謝,
布倫丹
編輯:我的語法中的一個錯誤似乎把整個事情都搞砸了。 "$(this).parent().parent()" 確實有效,但我最終選擇了 $(this).closest('tr')" 因為它似乎是最有效的解決方案。
最好的方法可能是使用closest
:
$(this).closest('tr');
查看文檔:
Closest 首先查看當前元素以查看它是否與指定的表達式匹配,如果匹配則返回元素本身。 如果不匹配,它將繼續向上遍歷文檔,父級一個父級,直到找到與指定表達式匹配的元素。 如果沒有找到匹配的元素,則不會返回任何元素。
它應該工作。 您也可以嘗試 $(this).parents(tag) ,其中 tag 是您要查找的標簽。
例如:
$(this).parents("tr:first")
將找到最接近的 tr “上鏈”。
那應該有用……你可以試試
$(this).parents(':eq(1)');
.parents(selector) 表示獲取與選擇器匹配的所有祖先
:eq(1) 表示找到列表中的第一個(零索引,所以是第二個)元素
這個片段過去曾為我表演過:
$(this).parent().parent();
發布一些代碼讓我們看看是否還有其他問題......
也試試
$(this).closest('div.classname').hide();
如果你有任何類型的父級 id/class,你可以使用 parents() 但這會給你所有的父級到 < body > 除非你 filter() 或以其他方式停止它
$(this).parents('.myClass');
希望這對某人有所幫助:)
var getParentNode = function(elem, level) {
level = level || 1;
for (var i = 0; i < level; i++) {
if (elem != null) {
elem = elem.parentNode;
}
}
return elem;
}
嘗試將 $(this).parent() 包裝到像 $($(this).parent()) 這樣的 jQuery 對象中,我經常發現需要這樣做以確保我有一個有效的 jquery 對象。 從那里你應該能夠獲得父母的父母,或者使用 prev() 。
.closest()
並不總是最好的選擇,特別是當您具有相同的元素構造時。
<div>
<div>
<div>
</div>
</div>
</div>
你可以做父母的父母,這很容易:
var parent = $('.myDiv').parent();
var parentParent = $(parent).parent();
var parentParentParent = $(parentParent).parent();
等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.