2013-07-16 21 views

回答

31

當您使用.data()更新數據值,則更新的jQuery管理的內部對象,因此它不會在data-*屬性進行更新

+6

如果我使用'attr',那麼它的工作原理 – user007

+1

@HowToPlease是的,attr()更新dom屬性,這兩個服務都是不同的目的。 –

+0

你爲什麼要首先更新元素屬性 –

2

我旁敲側擊如此糟糕:(並能解決這個問題。這個使用jQuery數據的方法如果HTML是動態的,數據訪問屬性後的第一時間後改爲像我們接縫不能做實現。

根據jQuery.data()

數據- 在在第一次訪問數據屬性 訪問然後不再被訪問或變異(所有數據值 然後存儲在jQuery內部)時首先拉扯貢品。

所以我所做的是,它改變到不會給你整數分析得到的值ATTR方法,所以你必須使用「+」操作數轉換一樣:

+ myElement.attr('data-index'); 

注:您必須小心,如果數據attr中有任何字符串,它會將結果轉換爲NaN。順便說一句,這是你選擇的代碼實現。