jquery attr與prop的區別

來源:互聯網
上載者:User

標籤:開發   ted   page   更改   操作   sel   擷取   attribute   狀態   

最近開發中發現用attr無法設定checkbox的選中事件,在網上找了下說要用prop,所以總結下兩者的區別。

1、操作的對象不同

  attr:操作的是HTML文檔節點屬性

  prop:操作的是js對象屬性

2、應用版本不同

  attr()是jQuery 1.0版本就有的函數,prop()是jQuery 1.6版本新增的函數。

  在1.6之前,只能使用attr()函數;1.6及以後版本,你可以根據實際需要選擇對應的函數。

3、用於設定的屬性值類型不同

  由於attr()函數操作的是文檔節點的屬性,因此設定的屬性值只能是字串類型,如果不是字串類型,也會調用其toString()方法,將其轉為字串類型。

  prop()函數操作的是JS對象的屬性,因此設定的屬性值可以為包括數組和對象在內的任意類型。

4、其他

  使用attr()擷取這些屬性的傳回值為String類型,如果被選中(或禁用)就返回checkedselecteddisabled,否則(即元素節點沒有該屬性)返回undefined

  並且,在某些版本中,這些屬性值表示文檔載入時的初始狀態值,即使之後更改了這些元素的選中(或禁用)狀態,對應的屬性值也不會發生改變。

  因為jQuery認為:attribute的checkedselecteddisabled就是表示該屬性初始狀態的值,

  property的checkedselecteddisabled才表示該屬性即時狀態的值(值為truefalse)。

  

 

因此,在jQuery 1.6及以後版本中,請使用prop()函數來設定或擷取checkedselecteddisabled等屬性。對於其它能夠用prop()實現的操作,也盡量使用prop()函數。

 

 

jquery attr與prop的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.