jQuery1.6以前,使用.attr()的方式来获取checkbox的状态,返回true/false;
jQuery1.6以后,如果没有明确的写出checked属性,不管后来有没有选中复选框,使用.attr()获取的值为undefined。在jQuery1.6以后,使用.prop("checked")或is(":checked")来返回true/false。
官方API文档解释:
As of jQuery 1.6, the .attr()
method returns undefined
for attributes that have not been set. In addition, .attr()
should not be used on plain objects, arrays, the window, or the document. To retrieve and change DOM properties, use the .prop() method.
The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the .attr()
method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the .prop()
method provides a way to explicitly retrieve property values, while .attr()
retrieves attributes.
总结:
获取checked的方法(返回值为true/false):
1.6:.attr("checked");
1.6+:.prop("checked");
checked赋值:
适用于所有版本
.attr("checked","checked");
.attr("checked",true);
.removeAttr("checked");
1.6+还可以使用下面方法:
.prop("checked","checked");
.prop("checked",true);