簡體   English   中英

父級的 jQuery 父級

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM