在jQuery中,.data
读取HTML5 data-*
属性的值,但是当您使用data
函数设置/更新值时,它不会更改属性。
<div id="first" data-foo="attr value" > </div>
var attr = $('#first').data('foo');
alert(attr); // alerts: attr value
$('#first').data('foo', 'data value');
var data = $('#first').data('foo');
alert(data); //alerts: data value
var attrAgain = $('#first').attr('data-foo');
alert(attrAgain); // alerts: attr value
jQuery在哪里存储值?在文档中写道:
数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(所有数据值都在内部存储在jQuery中)。
但是在哪里?我试图了解使用.data
函数的费用是多少
如何在没有.data
功能的情况下达到这些值?
答案 0 :(得分:3)
jQuery有一个内部 - 你无法立即访问 - 存储空间。如果您需要更新数据属性,请查看Making jQuery.data() selector aware。
jQuery使用那个内部存储(除了javascript对象,顺便说一句。)有两个原因:
.data()
.data('foo', {bar:"baz"})
无法正常工作 jQuery根据data module of jQuery 1.7.1将这些背景信息存储在jQuery.cache
。