通过jquery

时间:2018-11-12 11:46:39

标签: javascript jquery

我正在尝试通过jquery定义的数据属性选择元素(在DOM中不可见),因此我无法使用$('.foo:data(id)')

示例:如果用户单击元素,我将向其添加数据属性,如下所示

$(this).data('id', '1');

现在我想找到具有以下内容的元素 data-id == 1

如何通过data-id选择此元素?

2 个答案:

答案 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()