javascript - 如何使用 jQuery 通过数据属性查找动态添加的元素?

标签 javascript jquery html

有一个元素动态应用了这样的数据属性

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

这里有我们的 tr。
...
这里我们要通过数据属性找到我们新添加的tr

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

不幸的是,我们没有通过这种方式找到 tr。
为什么会得到这个结果?

最佳答案

您遇到的问题是通过 jQuery 添加的 data-* 属性存储在其内部缓存中。它们不能作为 DOM 中的属性使用。考虑到这一点,您可以使用 filter() 来实现您的要求:

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

关于javascript - 如何使用 jQuery 通过数据属性查找动态添加的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402103/

相关文章:

html - 将自动溢出添加到绝对定位的 div

javascript - 在 onChange 事件中获取 redux-form 值

javascript - 需要 OpenCPU 和 igraph 输出格式的帮助

javascript - 如何使用 PHP 格式化 JSON 响应

javascript - 模态关闭/打开

html - '位置: fixed' is not applying in Samsung S3

javascript - 将多个选择器传递给一个函数

javascript - jQuery/Javascript 替换多次出现不起作用

jquery 日期选择器 : validate date

jquery - 我无法获得这个改变宽度以运行多次的 jQuery 动画