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制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
jQuery实现表格隔行换色
Sep 01 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
jQuery zTree树插件的使用教程
Aug 16 jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
jQuery实时统计输入框字数及限制
Jun 24 jQuery
jquery实现抽奖功能
Oct 22 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jQuery实现手风琴特效
Jan 11 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上传文件,创建递归目录的实例代码
2013/10/18 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
js post提交调用方法
2014/02/12 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Python中的装饰器用法详解
2015/01/14 Python
Python 的内置字符串方法小结
2016/03/15 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
python中rb含义理解
2020/06/18 Python
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
大专生工程监理求职信
2013/10/04 职场文书
统计员岗位职责
2013/11/14 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
个人委托函范文
2015/01/29 职场文书
2015元旦感言
2015/12/09 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Vue router配置与使用分析讲解
2022/12/24 Vue.js