2011-06-06 63 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對象的屬性將恢復從你設定的任何東西到「一些價值」。