我正在尝试通过jquery定义的数据属性选择元素(在DOM中不可见),因此我无法使用$('.foo:data(id)')
示例:如果用户单击元素,我将向其添加数据属性,如下所示
$(this).data('id', '1');
现在我想找到具有以下内容的元素
data-id == 1
如何通过data-id选择此元素?
答案 0 :(得分:1)
您可以使用属性选择器[attribute=...]
。
在您的情况下,应该是
$('[data-id=1]')
但是请记住,如果使用.data()
更改元素的数据,则该更改不会反映在dom属性中,因此您不能使用此属性(或另外更改dom属性)。
另一种方法是选择每个候选对象,然后对每个具有匹配数据值的元素进行过滤。
$('.foo').filter(function(){
return $(this).data('id') == 1;
});
答案 1 :(得分:1)
使用filter()
$('.foo').filter(function(){
return $(this).data('id') === `1`
}).doSomething()