更改data-attr,然后通过jQuery中的数据获取对象

时间:2013-05-01 21:14:58

标签: jquery

我有html

<div class="item" data-value="1">item</div>

js

$('.item[data-value="1"]').data('value', 2');

所以,现在我.itemdata-value="2",我想通过jQuery获取它:

$('.item[data-value="2"]')

返回[]

我知道问题在于,jQuery会更改数据值而不会更改data-value属性。我知道,问题可以通过使用attr方法而不是data来解决。

但有没有办法通过data方法获取data方法改变data的对象?

3 个答案:

答案 0 :(得分:1)

您可以使用filterdata方法过滤元素。

$('.item').filter(function() {
   return $(this).data('value') === '2';
});

http://jsfiddle.net/3dfX7/

答案 1 :(得分:1)

使用this answer中的函数,您只需编写:

$('.item:data(value==2)');

答案 2 :(得分:0)

您已关闭括号false:

$('.item[data-value="2"]')

应该使用

.attr('data-value', 2)

更新数据值:)