removeData导致值恢复为值

时间:2011-06-06 00:20:40

标签: jquery

根据documentation,。removeFove()将导致被删除属性的值恢复为DOM中同名数据属性的值。

问:这是什么意思?

2 个答案:

答案 0 :(得分:2)

鉴于此(初始)HTML源代码:

<div data-x="1"></div>

考虑以下代码:

div.data('x'); // returns 1

div.data('x', 2);

div.data('x'); // returns 2

div.removeData('x');

div.data('x'); // returns 1

(其中div指的是DOM中的DIV对象。)

现场演示: http://jsfiddle.net/DyGBB/

因此,data('x')最初将返回该DIV的data-x HTML属性的值。但是,如果您以编程方式设置此相同的数据属性:data('x', 2),则data('x')不再返回data-x HTML属性的值,而是使用{{{}存储的值1}}。

如果您现在执行data('x', ...),则会删除以编程方式设置的值,以便removeData('x')再次返回data('x') HTML属性的值。

请注意,一旦页面加载并构建了DOM,“HTML属性”就不再存在了。但是,DOM元素包含data-x属性,该属性是一个对象,其中包含HTML源代码中HTML元素上定义的每个HTML属性的相应属性。

答案 1 :(得分:1)

如果您的对象对应于以下html元素:

&lt; div data-attname =&#34;某些值&#34;&gt;&lt; / div&gt;

然后javascript对象的属性名为&#34; attname&#34;将恢复到某些价值&#34;从你设置的任何东西。