.attr()與.data()的區別


  今天在做一個功能時,用到了利用attr記錄暫時的值,還是按照之前的一慣做法,attr賦值,data取值,但是!失靈了!

然后,調試發現,之前都是在頁面初始化時,標簽已有attr屬性,此時用$.data()是可以獲取到,但是,當再次$.attr()賦值后,就不可以了。

經搜索及調試及驗證后,發現,原因如下:

1.attr屬性是必須寫在html標簽上,它屬於dom屬性,而data是儲存於jquery對象模型上,它屬於jquery對象屬性,因此,它倆本質不一樣;

2.attr的運行機制是:$.attr()取值和賦值都是找到html標簽,直接操作該標簽的屬性;

3.data的運行機制是:頁面第一次解析時,會將dom節點的attribute值存放到內存中, $.data()取值和賦值都是直接操作這個內存值,而不是dom元素;

綜上所述:

1.避免attr和data的混合使用,以免因為數據不一樣,產生bug;

2.attr賦值就用attr取值;

3.data賦值就用data取值。

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM