Javascript jquery在更新元素上的数据标记后使用数据标记选择器

Javascript jquery在更新元素上的数据标记后使用数据标记选择器,javascript,jquery,tags,Javascript,Jquery,Tags,我希望能够获得一组与jQuery中的选择器匹配的元素。我有一个带有数据标记属性的HTML,jQuery使用.datakey,value方法动态更改这些属性 然而,在动态更新元素的数据标记之后,我似乎不能再使用选择器来获取具有更新值的元素。它仍然返回旧值 我有一个JSFIDLE设置来演示这个问题: 下面是示例代码: <span id="example" data-tag="5"></span> <div id="result"></div> &l

我希望能够获得一组与jQuery中的选择器匹配的元素。我有一个带有数据标记属性的HTML,jQuery使用.datakey,value方法动态更改这些属性

然而,在动态更新元素的数据标记之后,我似乎不能再使用选择器来获取具有更新值的元素。它仍然返回旧值

我有一个JSFIDLE设置来演示这个问题:

下面是示例代码:

<span id="example" data-tag="5"></span>

<div id="result"></div>
<div id="result2"></div>

$(document).ready(function(){
    var $example = $('#example');

    $('#result').html($example.data('tag'));
    $example.data('tag', 7);

    $('#result').html("elements that have tag 5: " + $('[data-tag="5"]').length);

    $('#result2').html("elements that have tag 7: " + $('[data-tag="7"]').length);
});
结果:

具有标记5:1的元素 具有标记7的元素:0

我知道我可以使用each循环,并通过if语句比较每个元素的数据。。但我希望能够通过新的set data标记值查询所有元素,并返回这些结果


有什么帮助吗?

您的问题在这里得到了回答:

$'foo li[data my key=54321]”是一个属性选择器

使用.data。。更改不使用过滤器就无法从中选择的图元属性

如果要获取具有特定属性的所有元素,可以使用以下方法:

有关更多信息,请参见此处:

$('#foo li').filter(function(index) {
  return $(this).data('my-key') === 54321;
}); //returns all `#foo li` with data[my-key] === 54321