簡體   English   中英

如何使用jQuery按數據屬性查找動態添加的元素?

[英]How to find dynamically added element by data attribute using jQuery?

有一個元素是這樣動態應用的數據屬性

var tr = $('<tr>');
tr.data('template_id', 5);
table.find('tbody').append(tr);

在這里,我們將tr放在桌面上。
...
在這里,我們希望找到我們新添加的tr by data屬性

var tr = table.find('[data-template_id="5"]');
console.log(tr) // tr.length = 0;

不幸的是,我們沒有找到這種方式。
為什么會得到這個結果?

您遇到的問題是通過jQuery添加的data-*屬性存儲在其內部緩存中。 它們不能作為DOM中的屬性使用。 考慮到這一點,您可以使用filter()來實現您的需求:

var $tr = table.find('tr').filter(function() {
    return $(this).data('template_id') == 5;
});
console.log($tr.length);

嘗試tr.attr("data-template_id", 5)而不是tr.data('template_id', 5)

我想你可以用

tr.attr('template_id', 5);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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