我有一个像这样的 HTML:
<div data-value="a"></div>
<div data-value="b"></div>
<div data-value="c"></div>
<div data-value="d"></div>
<div data-value="a"></div>
<div data-value="d"></div>
<div data-value="e"></div>
我想使用 jQuery 来选择具有不同 data-value
属性的所有 div。
这是我的尝试:
$( document ).ready(function() {
$('div[data-value]').each(function(){
var value = $(this).data("value");
console.log(value);
});
});
这当然会打印出所有出现的情况:a, b, c, d, a, d, e
。
相反,我只需要打印每个值的第一次出现:a、b、c、d、e
。
是的,我可以使用一个数组将元素放入其中并检查它是否已经在那里并执行我的操作,但我正在寻找紧凑而优雅的 jQuery 代码,例如选择器或过滤器函数或其他东西。有什么想法吗?
最佳答案
I would like to select with jquery all the div with different data-value attribute.
....
like a selector or a filter function or something
....
我假设其他人没有阅读这个问题,并且您确实想选择具有唯一数据属性的元素,而不仅仅是获取包含这些属性值的数组。
过滤器似乎是这里的正确方法,检查当前迭代的元素是否是第一个具有该data-value
等的元素
$('div[data-value]').filter(function(_, x) {
return $('div[data-value="' + $(x).data('value') + '"]').get(0) === this;
});
关于jQuery 选择器仅获取每个值的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24776260/