Jquery中attr与prop的区别详解


Posted in jQuery onMay 27, 2017

实践过程

在前一段时间,同事做了一个页面,效果是这样的

Jquery中attr与prop的区别详解
页面

当点击左上方那个checkBox时,要将下面的checkBox全部选中,我们的代码是这样的

$("input[name='checkbox']").attr("checked",true);

然并卵,一点效果都没有,后来换成这样,好了

$(function(){
  $("#all").click(function(){
   if($("#all").prop("checked")){
    $("input[name='checkbox']").prop("checked",true);
   }else{
    $("input[name='checkbox']").prop("checked",false);
   }
  });
 });

于是上官方的文档查了下attr和prop的区别,发现根本看不懂,如下图

Jquery中attr与prop的区别详解

Jquery中attr与prop的区别详解

于是,我们做了个实验

c1:<input id="c1" name="checkbox" type="checkbox" checked="checked" /></br>
  c2:<input id="c2" name="checkbox" type="checkbox" checked=true/></br>
  c3:<input id="c3" name="checkbox" type="checkbox" checked=""/></br>
  c4:<input id="c4" name="checkbox" type="checkbox" checked/></br>
  c5:<input id="c5" name="checkbox" type="checkbox" /></br>
  c6:<input id="c6" name="checkbox" type="checkbox" checked=false/></br>

   var a1=$("#c1").attr("checked");
   var a2=$("#c2").attr("checked");
   var a3=$("#c3").attr("checked");
   var a4=$("#c4").attr("checked");
   var a5=$("#c5").attr("checked");
   var a6=$("#c6").attr("checked");

   var p1=$("#c1").prop("checked");
   var p2=$("#c2").prop("checked");
   var p3=$("#c3").prop("checked");
   var p4=$("#c4").prop("checked");
   var p5=$("#c5").prop("checked");
   var p6=$("#c6").prop("checked");

   console.log("a1:"+a1);
   console.log("a2:"+a2);
   console.log("a3:"+a3);
   console.log("a4:"+a4);
   console.log("a5:"+a5);
   console.log("a6:"+a6);

   console.log("p1:"+p1);
   console.log("p2:"+p2);
   console.log("p3:"+p3);
   console.log("p4:"+p4);
   console.log("p5:"+p5);
   console.log("p6:"+p6);

结果是这样的(chrome)

Jquery中attr与prop的区别详解
效果

发现attr的返回值要么是checked要么是undefined,prop的返回值只有true和false。

经过在网上搜素和测试总结

prop()函数的结果:

      1.如果有相应的属性,返回指定属性值。

      2.如果没有相应的属性,返回值是空字符串。

attr()函数的结果:

      1.如果有相应的属性,返回指定属性值。

      2.如果没有相应的属性,返回值是undefined。

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

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

具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

jQuery 相关文章推荐
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
Jul 22 jQuery
jquery.pager.js实现分页效果
Jul 29 jQuery
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
jQuery实现穿梭框效果
Jan 19 jQuery
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
Mar 31 jQuery
jQuery插件imgAreaSelect基础讲解
May 26 #jQuery
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 #jQuery
jQuery导航条固定定位效果实例代码
May 26 #jQuery
bootstrap+jQuery实现的动态进度条功能示例
May 25 #jQuery
jQuery滚动插件scrollable.js用法分析
May 25 #jQuery
jQuery Masonry瀑布流布局神器使用详解
May 25 #jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 #jQuery
You might like
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Python实现批量下载文件
2015/05/17 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
基于django传递数据到后端的例子
2019/08/16 Python
python实现简易学生信息管理系统
2020/04/05 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
实习心得体会
2014/01/02 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
海飞丝广告词
2014/03/20 职场文书
新文化运动的口号
2014/06/21 职场文书
护士实习求职信
2014/06/22 职场文书
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers