在老的jQuery版本中,都是使用attr()来访问对象属性的,比如取一个图片的alt属性,title属性,但是有的属性是这样的,比如说input的checked=“checked”,disabled=“disabled”...再有的浏览器中,后面的checked或者disabled都可以省略,只要声明了这个属性存在,那这个属性就生效了;所以在更新的jQuery版本中(1.6)开始,jQuery提供了新的方法,prop()来获取这些属性,使用prop()的时候,返回值是布尔值:true/false;
那么到这里,什么时候该用attr,什么时候该用prop就一目了然了。
原则一:只添加属性名称该属性就会生效的属性(例如chencked、disabled),就用prop();
原则二:只存在true/false的属性应该使用prop();
原则三(补充):如果提取一个元素的属性,这个属性是这个元素的固有属性,那么用prop(),如果这个属性不是这个标签固有的(自己瞎加的),那么用attr();
demo如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../js/Jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
$("#ChenckedAll").click(function(){
var state_prop=$("input[type=checkbox]").prop("checked");//使用prop
var state_attr=$("input[type=checkbox]").attr("checked");//使用attr
alert("state_prop="+state_prop);//false
alert("state_attr="+state_attr);//undefined
})
$("#ChenckedNo").click(function(){
$("input[type=checkbox]").prop("checked",false);
})
})
</script>
</head>