【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:别输给曾经的自己

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-15 20:57:55

【Jquery】prop与attr的区别的相关文章

jQuery prop和attr的区别

两者对比 jquery方法 原理 适合场景 缺陷 prop 解析原生property element.property radio/checkbox select标签 等需要读boolean和索引的场合 读不到自定义属性 如<a my='I'/> my属性读不到 attr 通过Attr API去读取 element.getAttribute(propertyName) 除prop场景外 可能读不到boolean或一些索引值 如checked,selectedIndex prop方法 例子 在控

jQuery学习之prop和attr的区别

http://blog.sina.com.cn/s/blog_655388ed01017cnc.html .prop() 1..prop( propertyName ) 获取匹配集合中第一个元素的Property的值 2. .prop( propertyName, value ) .prop( map ) .prop( propertyName, function(index, oldPropertyValue) ) 给匹配元素集合设定一个或多个属性 .prop()和 .attr()区别 下面是

jquery中prop和attr的区别

jquery中prop和attr的区别 prop: prop(name|properties|key,value|fn) **概述** 获取在匹配的元素集中的第一个元素的属性值. 随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误. jQuery第一次分配undefined值的属性,而忽略了浏览器生成的任何错误 **参数** name String V1.6 属性名称 properties Map V1.6 作为属性的"名/值对"对象 key,v

JQUERY prop与attr区别

1.  1-9-1前后区别 <html> <script src="Js/jquery-1.9.0.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $(":button").click(function(){ //prop与attr区别 //attr在1.9以后a

jQuery中prop() 和 attr()的区别

prop() 和 attr() 可能返回不同的值,先看下面一段代码 <script> $(document).ready(function(){ $("button").click(function(){ $("input").attr('checked') //attr('checked'): checked 或 undefined $("input").prop('checked')); //prop('checked'): tr

prop与attr的区别

与prop一样attr也可以用来获取与设置元素的属性. 区别在于,对于自定义属性和选中属性的处理. 选中属性指的是 checked,selected 这2种属性 1. 对于自定义属性 attr能够获取,prop不能获取 2. 对于选中属性 attr 只能获取初始值, 无论是否变化 prop 能够访问变化后的值,并且以true|false的布尔型返回. 所以在访问表单对象属性的时候,应该采用prop. <script src="http://how2j.cn/study/jquery.min

jquery中prop()和attr()的区别

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. <a href="http://www.baidu.com" target="_sel

第82天:jQuery中prop()和attr()的区别

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答案很多.这里谈谈我的心得,我的心得很简单: 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. 上面的描述也许有点模糊,举几个例子就知道了. <a href="http://www.baidu.com" target="_sel

关于jQuery表单选择中prop和attr的区别。

今天用jQuery学习表单这一章节的内容,再次遇到表单全选时,不能进行第二次全选的情况.反复查看测试仍然找不到是什么原因.后来在网上查到原来是jQuery1.6以后的版本用到的是prop.用attr的话不会多次实现,因为attr不会记录当前checkbox的选中状态. 表单这一章节内容让我感觉到有点吃力,总之好好努力吧! 以下是代码说明: <!DOCTYPE html> <html lang="en"> <head> <meta charset