近期和一同事争执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