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解析获取JSON数据
Apr 08 jQuery
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
jquery实现倒计时小应用
Sep 19 jQuery
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
webpack写jquery插件的环境配置
Dec 21 jQuery
JQuery元素快速查找与操作
Apr 22 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
Jquery高级应用Deferred对象原理及使用实例
May 28 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整合七牛实现上传文件
2015/07/03 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
JavaScript实现短信倒计时60s
2017/10/09 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
python连接mysql调用存储过程示例
2014/03/05 Python
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
使用Python的PEAK来适配协议的教程
2015/04/14 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
设置python3为默认python的方法
2018/10/31 Python
Django REST framework 视图和路由详解
2019/07/19 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
办护照工作证明范本
2014/01/14 职场文书
600字作文之感受大自然
2019/11/27 职场文书
浅谈克隆 JavaScript
2021/11/02 Javascript
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby