jQuery学习之prop和attr的区别

 我来答
匿名用户
2014-11-21
展开全部

可以参考一下网上的其他介绍。


1、赋值时候,如果是<input type="checkbox" checked>这样的只有属性名就能生效的属性

推荐prop,即:$('input').prop('checked',true);

同时,false表示取消,即:$('input').prop('checked',false);

当然attr也行的:$('input').attr('checked','这里写什么都行的');

取消属性就是移除:$('input').removeAttr('checked');

2、取值的时候,如果是<input  id="input1" type="checkbox" checked><input  id="input2" type="checkbox">

推荐使用prop,即:

$('#input1').prop('checked'); //返回true

$('#input2').prop('checked'); //返回false

而使用attr,则:

$('#input1').attr('checked'); //返回checked

$('#input2').attr('checked'); //返回undefined

3、特殊属性赋值取值

这个特殊说明下,获取很多人都用不到呢。

比如需要在input中追加一个data-tips属性。变成这样子 <input type="text" value="" data-tips="aa">

这时候只能写:$('input').attr('data-tips','aa');

使用prop是不管用的。

但是读值时候,两个都可以的:

$('input').attr('data-tips');//返回aa

$('input').prop('data-tips');//返回aa

参考:http://lemmychrist.blog.163.com/blog/static/98732963201391485225489/
handangaoyang
2014-11-21 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:902万
展开全部

这个,其实就是JavaScript中的attribute与property的区别。

<input type="text" id="test" />

$(":text").attr("style");
//输出undefined,因为attr是获取的这个对象属性节点的值,很显然此时没有这个属性节点,自然输出undefined
$(":text").prop("style");
//输出CSSStyleDeclaration对象,对于一个DOM对象,是具有原生的style对象属性的,所以输出了style对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式