jQuery中attr和prop方法的区别

 我来答
woshidaniel
推荐于2016-07-17 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:947万
展开全部

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。

对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

举例:

<a href="#" id="link1" action="delete">删除</a>
这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。
因此获取action使用attr方式获取,其他需要通过prop方式获取

补充:

在jquery1.6之前的所有版本中都使用attr方法来获取

leffe_李洋
2014-12-02 · 超过59用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:113万
展开全部
相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes。prop应运而生了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七七悠寒去皮1t
推荐于2016-08-08 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:162
采纳率:100%
帮助的人:108万
展开全部
对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

比如说·

<input id="c1" type="checkbox" />是否可见
<input id="c2" type="checkbox" checked="checked" />是否可见

像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。

$("#c1").prop("checked") == false
$("#c2").prop("checked") == true

如果上面使用attr方法,则会出现:

$("#c1").attr("checked") == undefined
$("#c2").attr("checked") == "checked"
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式