jQuery不返回新的data-attribute
我正在尝试使用data-attr和jQuery的一个非常简单的任务,请查看此示例:
加价 :
JS
$(function(){ var div = $('div'); $(div).append($(div).data('name')); $(div).attr('data-name', ' - Testing 2'); $(div).append($(div).data('name')); console.log(div); });
你可以在这里测试一下: http : //jsfiddle.net/YsKJJ/16/
因此,它应该在div
添加文本Testing - Testing 2
,但是打印TestingTesting
。 在控制台中我检查了对象中是否更改了attr,是的,有新值- Testing 2
但是jQuery仍然返回原始值:(
任何的想法?
更新:
那么,这个行为的原因是根据jQuery文档:
数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(然后所有数据值都在内部存储在jQuery中)。
更多信息: jQuery Data vs Attr?
工作演示 http://jsfiddle.net/DDv8U/
- API: http : //api.jquery.com/data/ – 尝试使用此
$(div).data('name', ' - Testing 2');
rest应该适合需要:)
码
$(function(){ var div = $('div'); $(div).append($(div).data('name')); $(div).data('name', ' - Testing 2'); $(div).append($(div).data('name')); });
您正在更改属性,但这不会自动更新数据。 这有效:
$(function(){ var div = $('div'); div.append(div.data('name')); div.data('name', ' - Testing 2'); div.append(div.data('name')); });