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