近期和一同事爭執prop和attr的區別,也查了不少,同事說它只是特性和固有屬性的區別,可是我也查到了一些其餘的,故此,來總結一下吧!spa
一、固有屬性和特別屬性 input
對於HTML元素自己就帶有的固有屬性,在處理時,使用prop方法。io
對於HTML元素咱們本身自定義的DOM屬性,在處理時,使用attr方法。select
例如: 方法
<input id="chk1" type="checkbox" />是否可見
<input id="chk2" type="checkbox" checked="checked" />是否可見
像checkbox,radio和select這樣的元素,選中屬性對應「checked」和「selected」,這些也屬於固有屬性,所以須要使用prop方法去操做才能得到正確的結果。
$("#chk1").prop("checked") == false
$("#chk2").prop("checked") == true
若是上面使用attr方法,則會出現:
$("#chk1").attr("checked") == undefined
$("#chk2").attr("checked") == "checked"
二、感受下面的有些不靠譜,你們視狀況而定吧!總結
1.添加屬性名稱該屬性就會生效應該使用prop();
2.是有true,false兩個屬性使用prop();
3.其餘則使用attr();checkbox