是否有這樣做的更好的辦法:jQuery的DOM的導航選擇父ATTR
partId = $(this).parent().parent().attr('data-partid') ;
我有一些地方的行輸出到頁面上,每行包含輸入字段。
當用戶鍵入輸入字段時,它通過ajax保存輸入到數據庫。
爲了確保信息被保存到正確的行,我需要沿該行的ID,它存儲在div派:
<div id="buyingRow0" data-partid="43293">...
是否有這樣做的更好的辦法:jQuery的DOM的導航選擇父ATTR
partId = $(this).parent().parent().attr('data-partid') ;
我有一些地方的行輸出到頁面上,每行包含輸入字段。
當用戶鍵入輸入字段時,它通過ajax保存輸入到數據庫。
爲了確保信息被保存到正確的行,我需要沿該行的ID,它存儲在div派:
<div id="buyingRow0" data-partid="43293">...
一個清潔的方法是做這樣的事情:
partId = $(this).closest('div[data-partid]').data('partid');
但我不確定它是否更有效。它甚至可能會變慢。
您可以使用closest()
:
var partId = $(this).closest('div').attr('data-partid') ;
如果你的目標div有一個ID(和你正在使用的ID屬性正確),這意味着它在頁面上唯一的一個。
$('#buyingRow0').data('partid');
似乎在這裏最有意義。
嗨,ids是dyamically生成的,我不認爲有一種不同的方式來獲得該部分行的ID到建議從哪個輸入/選擇被改變的部分。 – imperium2335 2012-07-24 06:56:20
$(this).parent().parent()
正好說明了兩個節點。如果您不想太依賴於DOM結構,那麼使用.closest()
作爲其餘建議確實很好。
如果data-partid
是您添加到很多標籤的通用屬性,那麼爲您所關注的行添加另一個布爾標識可能也不錯。 data-buying-row
,因此您可以在該節點中使用其他標記data-partid
。
<div id="buyingRow0" data-partid="43293" data-buying-row>
...
</div>
在這種情況下,你穿越到那個買行:
$(this).closest('div[data-buying-row]').data('partid');
您可以張貼HTML部分? – undefined 2012-07-24 06:45:41