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实现图片平滑滚动详解
Mar 22 jQuery
jQuery查找dom的几种方法效率详解
May 17 jQuery
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
JQuery 获取多个select标签option的text内容(实例)
Sep 07 jQuery
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
jQuery实现的记住帐号密码功能完整示例
Aug 03 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/06/06 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
javascript dom 操作详解 js加强
2009/07/13 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
《跨越百年的美丽》教学反思
2014/02/11 职场文书
婚前协议书怎么写
2014/04/15 职场文书
2014年征兵标语
2014/06/20 职场文书
专科生就业求职信
2014/06/22 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python