js中prop和attr區別


首先

  • attr 是從頁面搜索獲得元素值,所以頁面必須明確定義元素才能獲取值,相對來說比較慢。 
    如:

<input name='test' type='checkbox'>
$('input:checkbox').attr('type'); 返回checkbox.
$('input:checkbox').attr('checked'); 返回undefined。
 
因為<input name='test' type='checkbox'>中沒有checked關鍵字。

  • prop是從屬性對象中取值,屬性對象中有多少屬性,就能獲取多少值,不需要在頁面中顯示定義。 
    比如 
    $('input:checkbox').prop('checked'); 返回false

這里就會遇到個問題:如果是自定義的屬性,那么屬性對象中是沒有這個屬性的。所以prop返回undefined。但是頁面中可以檢索到這個屬性,所以attr是可以獲取的。

其次

  • attr獲取的是初始化值,除非通過attr(‘name’,’value’)改變,否則值不變。prop屬性值是動態的,比如checkbox,選中后,checked變為true,prop值也會發生改變。

總結

所以有個經驗就是:

    • 對於HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。快速,准確。

    • 對於HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。


免責聲明!

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



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