2011-03-15 62 views

回答

3

這是一個簡單的方便的情況下,它取決於你的實現是否使用數據功能。當您想要爲特定的DOM元素存儲相關值時,通常會使用.data(),或者更可能是DOM元素的「集合」。您通常會在迭代元素並根據值執行決策或執行操作時檢索這些值。即使你要檢索一個值 - 如果你緩存了jQuery DOM元素,那麼檢索附加值將會是一種廉價的調用。

+0

+1'收藏'兄弟的好處!我實際上碰到過,但並沒有跨過我的腦海...... – bcm 2011-03-15 09:49:45

+0

此外,使用jQuery的data()將觸發該對象上的事件(「getData」)(早期版本的jQuery.datalink依賴於它們,但現在使用不同的方法)。一個例子可以在這裏看到:http://jsfiddle.net/algor/z2B8b/1/ – 2011-03-15 09:54:33

1

因爲您無法使用「純javascript對象」輕鬆存儲與某個DOM元素相關的數據。如果您的數據與某個DOM對象無關,您當然不應該使用$.data

+0

對不起,如果我沒有意義..但沒有任何關係隱含只是因爲他們坐在DOM?如果是這樣,我不能將該(隱含)關係應用於對象數組嗎? – bcm 2011-03-15 09:03:37

+0

爲什麼要將與某些DOM元素相關的數據存儲到DOM元素本身?而不是作爲一個可以更快地檢索的全局變量? – bcm 2011-03-15 09:16:42

+0

1)全局變量很髒。 2)您需要檢索特定於DOM元素的數據。對於沒有ID的元素,你會怎麼做? – ThiefMaster 2011-03-15 10:18:19

0

我想通了。

的DOM元素可以和應參考當使用現有數據,並且將不可能在這樣擊中性能導致(我們仍維持DOM_Element-鍵值關係)。

因此,最初的樣子了爲「體」,當存儲鍵值是唯一的性能開銷,以及隨後的數據檢索沒有發現「身體」又:

b = $('body'); 
b.data('key', 'value'); 
alert(b.data('key')); 
相關問題