2011-06-06 65 views

回答

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的HTML属性的data-x的值。但是,如果以编程方式设置相同的数据属性,如下所示:data('x', 2),则data('x')不会再返回data-x HTML属性的值,而是返回使用data('x', ...)存储的值。

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

请注意,“HTML属性”实际上不再存在了,一旦页面已经加载并且DOM已经构建好了。但是,DOM元素包含attributes属性,该属性是包含HTML源代码中HTML元素上定义的每个HTML属性的相应属性的对象。

+0

哇。谁知道?这真的很奇怪。 – 2011-06-06 00:37:45

1

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

< DIV数据attname = “一些值”> </DIV>

当时称为 “attname” 的JavaScript对象的属性将恢复从你设定的任何东西到“一些价值”。