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

在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了。

关于它们两个的区别,网上的答案很多。这里谈谈我的心得,我的心得很简单:

  • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
  • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

上面的描述也许有点模糊,举几个例子就知道了。

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>

这个例子里<a>元素的DOM属性有“href、target和class",这些属性就是<a>元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。

<a href="#" id="link1" action="delete">删除</a>

这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。

再举一个例子:

<input id="chk1" type="checkbox" />是否可见<input id="chk2" type="checkbox" checked="checked" />是否可见

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

$("#chk1").prop("checked") == false
$("#chk2").prop("checked") == true

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

$("#chk1").attr("checked") == undefined
$("#chk2").attr("checked") == "checked"
时间: 2024-12-23 06:45:54

jquery中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

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

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

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

JQuery中prop和attr的区别,checked添加和删除

一.问题 $("#swIdInForm").removeAttr("checked"); $("#swIdInForm").attr("checked","true"); // 重新增加不起作用 在使用removeAttr()移除了radio的checked属性后,使用attr()重新增加不起作用: 二.解决 $("#swIdInForm").removeAttr("check

浅谈jquery中prop()和attr()

我们都知道,一般在jquery中设置属性时要用到attr()方法,现在我们有一个效果,点击按钮切换复选框的选中状态,下面贴出html代码: <input type="checkbox" id="check"> <label>复选框</label> <input type="button" value="切换" id="btn"> js代码: <scrip

【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&quo

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

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

jquery中prop()与attr()方法的区别

一.prop() 简单来说是当需要判断真假时使用,如复选框时: if( $(this).prop('checked')){ //当返回true时在这里调用 }else{ //当返回false时在这里调用 } TIPS:相关判断$(this).is(':checked')--这个用得酷点 二.attr() 简单来说当你要获得某个属性及其值时使用,如获得p标签的id时: $('p').attr('id'); 或将其设置id为pId时: $('p').attr('id','pId');

jq中.prop()与attr()的区别

一,定义 prop() 方法设置或返回被选元素的属性和值.prop() 方法应该用于检索属性值 attr()  方法设置或返回被选元素的属性和值.如需检索 HTML 属性,请使用 attr() 方法代替. 固有属性用prop方法: 自定义属性用attr方法. 典型的例子:判断checkbox是否选中 $('#all').on('click',function(){ if($("#all").is(':checked')){ $(".childbox").each(f