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插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
jquery+css实现侧边导航栏效果
Jun 12 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
jqueryUI tab标签页代码分享
Oct 09 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
JQuery中queue方法用法示例
Jan 31 jQuery
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
jquery实现上传图片功能
Jun 29 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
4种PHP异步执行的常用方式
2015/12/24 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
Javascript实现的分页函数
2006/12/22 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
Python制作爬虫抓取美女图
2016/01/20 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
详解Python自建logging模块
2018/01/29 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python轮询机制控制led实例
2020/05/03 Python
python 调整图片亮度的示例
2020/12/03 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
经管应届生求职信
2013/11/17 职场文书
物业管理工作方案
2014/05/10 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
PyTorch的Debug指南
2021/05/07 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技