这是一个很小的问题,却能困扰一个人很久。

当使用jQuery的attr(attr,value)给<input type='checkbox'/> 赋值checked时,查看代码已经复制了,但是页面上却不显示勾选。

具体解决方法如下:

使用prop()方法即可。

原因如下:

在高版本的jquery中,引入了prop方法

两者的使用区别如下:

  • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
  • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

也就是说,一般情况下使用attr方法是告诉jquery给一个dom的attributes属性增加一个attributes(key:value)。
而prop的意思就是让这个dom的原生属性做出改变,也就是说浏览器会重新解析原生属性,从而影响了dom在页面上的显示。

可以这么来看这个dom

dom:
    checked:false
   disabled:false
   attributes:[]
   ...

浏览器会对原生属性做解析,而不会对attributes里的属性做解析,就是这么简单。

标签: jquery, prop, attr

添加新评论