2012-03-20 23 views
2

我通過電話加入一個id到元件以jQuery.data添加到元素的數據:一個方便的方式看到通過jQuery的.data()

$layout.nextAll('.imagepicker').data('imgPickerId', randomnumber); 

所以我一類的元素imagepicker將有向其中添加了數據屬性[imgPickerId=randomnumbervalue]

這似乎有一個問題,我以後如何尋找.imagepicker正是這imgPickerId。我在哪裏可以查找哪些屬性以方便的方式添加到特定元素(不包括js代碼)?也許在某處的螢火蟲?

P.S.由於某些原因,我的「getter code」在jQuery 1.6中工作,但不在1.7中。仍然我懷疑數據沒有被添加到一個元素,並需要一種方法來檢查它。

回答

3

jQuery的data功能存儲在JavaScript中的一切使用HTML5數據attibute您可以預先填充了一些數據元素,不以任何方式改變DOM。恐怕您必須使用代碼才能訪問它。

快速Google搜索還向我展示了一個用於Firebug的FireQuery插件,它似乎使您能夠查看元素的附加數據。儘管我沒有嘗試過,所以我無法證實這一點。

更新:測試它,它工作正常!隨着FireQuery你的元素的所有數據都可見旁邊的HTML:

screenshot of FireQuery showing data attributes

+0

+1:爲涼插件,並沒有之前就知道它,它helpes我出去! – 2012-03-20 16:38:52

1

data()將數據保存在內存中(當然鏈接到選擇器中的元素),它不會在元素上寫東西,所以你不能在螢火蟲中查看。

通過雖然

看這個問題的一個擴大解釋

How does jQuery store data with .data()?

3

你有沒有在一個自定義您的數據,屬性一樣data-imgPickerID="someID"考慮?
當然,這不允許你保存大量的數據,但你可以通過螢火蟲檢查它,因爲你只保存一個ID它會適合你的需要。
這也是非常酷的有關.data()方法是你可以從上面檢索您的自定義屬性,像這樣.data("imgPickerID");

+0

** + 1 **請注意,'data- *'屬性是HTML5功能。 (雖然他們幾乎在每一個現代瀏覽器中工作......) – gdoron 2012-03-20 16:13:50

+0

是的,但據我所知,瀏覽器不支持HTML5的情況被忽略了嗎? – 2012-03-20 16:15:24

+0

幾乎所有的人。我認爲它可以在老歌劇中造成問題。基本上你是對的,它被忽略了。 – gdoron 2012-03-20 16:16:54

相關問題