jquery中的prop和attr比较区别

时间:2023-03-08 21:45:01

  近期和一同事争执prop和attr的区别,也查了很多,同事说它只是特性和固有属性的区别,但是我也查到了一些其他的,故此,来总结一下吧!

  1、固有属性和特别属性 

      对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

      对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

    例如:   

      <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"
 

  2、感觉下面的有些不靠谱,大家视情况而定吧!

    1.添加属性名称该属性就会生效应该使用prop();
    2.是有true,false两个属性使用prop();
    3.其他则使用attr();