2012-05-23 188 views
1

從觸發事件的元素中查找表單元素。我使用下面的代碼。但對我來說似乎很瘋狂。jquery選擇父節點

有沒有更好的方法做到這一點?

$("#xx").click(function(event) { 
    var testValue = $(this).parent().parent().parent().parent().parent().parent().parent().data("test"); 
}); 

謝謝你提前。

+0

好像瘋了,我說你有一個七層嵌套的表單元素 - 聽起來像是一個divitis的情況。請注意,最後的'attr(「#firstForm」)會嘗試返回與名爲「#firstForm」的屬性關聯的值,而不是試圖找到匹配「#firstForm」作爲選擇器的父項。 – nnnnnn

+0

對於我編輯它的雜亂問題感到抱歉,謝謝! –

回答

4

瘋了是對的。 :D

$(this).closest('#firstForm')應該爲你做這個。

+0

謝謝!哈哈:-) –

+1

注意,如果這個id是firstForm,那麼.closest會返回這個 –

+1

好點。還必須注意的是,如果我們真的在這裏使用ID,那麼實際上通過ID選擇會更快。 –

1

如果你的HTML是有效的,那麼簡單地做

$("#firstForm") 

ID是唯一的(假設有效HTML)

+0

對不起,我編輯了我的問題。 –

+0

@PatrickJeon nw。它也不影響解決方案。如果你知道id爲什麼不簡單選擇id?如果ID不是唯一的,爲什麼不解決這個問題? –