JQuery数据选择器不使用.data更新

时间:2012-03-19 09:59:56

标签: jquery html5 jquery-selectors

基本上,如果我将div加载到具有data-test属性的页面上并使用jquery的.data('test')更改它的值,我将无法再选择$('div[data-test="newValue"]')

见测试:

http://jsfiddle.net/VNaFs/1/

2 个答案:

答案 0 :(得分:137)

jQuery .data()最初使用data-属性中的值填充,但设置它只会将关联的新值存储在内存中。它不会更改DOM中的属性。要更改属性,您必须使用:

$('#one, #three').attr('data-test', 'changed');

文档位于http://api.jquery.com/jQuery.data/

答案 1 :(得分:10)

那是因为我认为.data()在jQuery中使用一个特殊的缓存对象来存储数据(实际上你可以平均存储对象或复杂的数据),如果你检查所有的属性都没有改变。如果要更改属性,请使用attr()