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方法。