Javascript jquery在更新元素上的数据标记后使用数据标记选择器
我希望能够获得一组与jQuery中的选择器匹配的元素。我有一个带有数据标记属性的HTML,jQuery使用.datakey,value方法动态更改这些属性 然而,在动态更新元素的数据标记之后,我似乎不能再使用选择器来获取具有更新值的元素。它仍然返回旧值 我有一个JSFIDLE设置来演示这个问题: 下面是示例代码: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
<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