【Jquery】prop与attr的差别

近期因项目须要用到复选框,当中一个控制全选。

// 全选
$(".ckb_all").click(function(){
    if($(this).attr("checked") == true){
		$(":input[name='ckb_img']").attr("checked",true);
	}else{
		$(":input[name='ckb_img']").attr("checked",false);
	};
});

一開始是像上面这样做是能够实现效果的。复制粘贴相同的代码到其它须要的地方。结果发现不起作用,找了半天。发现用的jquery版本号是1.8的,所以使用attr不起作用。以下就讲讲prop与attr的主要差别。

jquery在1.6版本号中加入了prop方法。与attr的主要差别是:
对于HTML元素本身的固有属性。使用prop方法
对于HTML元素开发人员自己定义的属性,使用attr方法

举个样例:
<a href="http://www.hao123.com" class="">hao123</a>
对于a标签来说,像href、class这些属性是它本来就有的,在获取时一般就用prop;


<a href="http://www.hao123.com" class="" goto="hao123">hao123</a>

在这个样例中,a标签本身并没有goto属性。是我们自己定义的,在获取时就用attr


像checkbox、select。选中属性相应“checked”和“selected”,都是固有属性,因此在1.6以上版本号的jquery中须要使用prop方法才干获取到正确的结果。
比方checkbox的checked属性,使用prop,选中时返回true,没选中时返回false。假设使用attr的话,选中时返回checked。没选中时返回undefined。



Author:顾故

Sign:别输给以前的自己








原文地址:https://www.cnblogs.com/zsychanpin/p/7000705.html