基本上,如果我将div加载到具有data-test
属性的页面上并使用jquery的.data('test')
更改它的值,我将无法再选择$('div[data-test="newValue"]')
见测试:
答案 0 :(得分:137)
jQuery .data()最初使用data-
属性中的值填充,但设置它只会将关联的新值存储在内存中。它不会更改DOM中的属性。要更改属性,您必须使用:
$('#one, #three').attr('data-test', 'changed');
答案 1 :(得分:10)
那是因为我认为.data()
在jQuery中使用一个特殊的缓存对象来存储数据(实际上你可以平均存储对象或复杂的数据),如果你检查所有的属性都没有改变。如果要更改属性,请使用attr()