这篇文章主要介绍了jquery判断复选框选中状态以及区分attr和prop,感兴趣的小伙伴们可以参考一下

最近项目中需要用jquery判断input里checkbox是否被选中,发现用attr()获取不到复选框改变后的状态,最后查资料发现jQuery 1.6以后新增加了prop()方法,借用官方的一段描述就是:

The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the .attr() method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the .prop() method provides a way to explicitly retrieve property values, while .attr() retrieves attributes.
上面翻译过来大概就是:prop()处理来自节点对象自带的属性,它包含了很多原生的property;而attr()来自对象的attributes,可能是我们在元素节点上添加属性节点才会有的。当然,前面的翻译仅代表本人观点,如有错误,可以提出来~~

简单的来说就是:

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
上面的描述也许有点模糊,引用一些大神的博客内容加上我的测试,举几个例子就知道了。

第一个例子:元素的固有属性以及自定义属性说明

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>
 这个例子里<a>元素的DOM属性有“href、target和class",这些属性就是<a>元素本身就带有的属性,也是W3C标准里就包含有这几个属性,或者说在IDE里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用prop方法。

<a href="#" id="link1" action="delete">删除</a>
这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使用attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。

第二个例子:prop()与attr()在表单应用上的区别

先来看一段用attr()方法代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title> attr() vs prop()</title></head><body><h3>用attr()判断是否选中</h3><input type="checkbox" id="input01" />我是第一个复选框A<br /><input type="checkbox" id="input02" checked="checked"/>我是第二个复选框B<br /><input type="button" id="button01" value="获取A的checked状态" /><input type="button" id="button02" value="获取B的checked状态" /><script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){$("#button01").click(function(){var $state01=$("#input01").attr("checked");alert($state01);})$("#button02").click(function(){var $state02=$("#input02").attr("checked");alert($state02);})})</script></body>
</html>

上面这段程序的测试结果是:

从动态图可以看出来,用attr()获取不到用户选中的状态,它只返回表单的初始值。 再来看一段用prop()方法代码:


<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title> attr() vs prop()</title></head><body><h3>用prop()判断是否选中</h3><input type="checkbox" id="input01" />我是第一个复选框A<br /><input type="checkbox" id="input02" checked="checked"/>我是第二个复选框B<br /><input type="button" id="button01" value="获取A的checked状态" /><input type="button" id="button02" value="获取B的checked状态" /><script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script><script type="text/javascript">$(function(){$("#button01").click(function(){var $state01=$("#input01").prop("checked");alert($state01);})$("#button02").click(function(){var $state02=$("#input02").prop("checked");alert($state02);})})</script></body>
</html>

上面这段程序的测试结果是:

从动态图可以看出来,用prop()可以实时获取用户的选中与取消操作状态。

因此我总结的差别就是:property记录的值会按照用户操作实时更新,而attribute记录的都是初始值,仅代表本人观点。

希望本文所述对大家学习javascript程序设计有所帮助。

文章转载自:https://m.jb51.net/article/76588.htm

作者:Sunshine_lily

jquery判断复选框选中状态以及区分attr和prop相关推荐

  1. jQuery 获取复选框选中状态

    经常用到,每次都记不住!!!特此记录一下.. html 代码片段: <input type="checkbox" id="noTip"> 不再提示! ...

  2. jQuery复选框选中状态更改事件

    本文翻译自:jQuery checkbox checked state changed event I want an event to fire client side when a checkbo ...

  3. php选框判断,jquery判断复选框是否被选中

    不久前总结了一下关于 javascript 如何判断复选框是否选中的问题,由于最近使用 Jquery 比较多,于是乎又想把 jquery 判断复选框是否选中以及如何选中的问题也做一下总结. 进入正题, ...

  4. jQuery 判断复选框是否被选中

    jQuery 判断复选框(checkbox)是否被选中,请阅读我的原创文章<jQuery attr()与prop()>,文章中的 prop() 方法介绍中有详细的说明和源码示例. 判断方法 ...

  5. jQuery判断复选框是否选中的三种方法

    jQuery判断复选框是否选中的三种方法. PS:下面的代码为通过循环找到在多个复选框中被选中的复选框,并对其删除 //判断复选框是否选中的第一种方法: $.each(buttons,function ...

  6. iview UI 的table组件设置复选框选中状态

    <Table ref="selection" @on-selection-change="selectionChanged" border :column ...

  7. 如何通过name获取单选框和复选框选中状态的value值?

    概述 有时候我们会遇到这组情况,就是需要通过单选框的name值获取到当前选中状态的value值,提交到后端,进行数据的修改,那么我们就来看看如何进行获取吧! 应用场景:我们有时候需要获取到单选框或者是 ...

  8. PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态

    先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...

  9. jquery循环复选框选中的值_jquery获取复选框被选中的值

    这篇文章主要介绍了jquery获取复选框被选中的值的方法,需要的朋友可以参考下 JS获取复选框被选中的值 0 1 2 3 4 5 6 7 JS代码 对checkbox的其他几个操作 1. 全选 2. ...

最新文章

  1. Vbox linux虚拟机桥接(VM操作也类似)
  2. php basic syntax
  3. ubuntu1804系统设置在哪里_Ubuntu1804(Server 版) 安装及使用
  4. 网络(7)-HTTP(HyperText Transfer Protocol,超文本传输协议)
  5. 软件测试缺陷定义和管理
  6. JavaScript设计模式 单例模式
  7. 蓝桥杯 ADV-71 算法提高 判断回文
  8. PL/SQL Developer远程连接Oracle数据库
  9. python插排_PythonTkinter接收插座不接收
  10. 《王道计算机考研》:数据链路层
  11. java学生管理系统遇到的难题_学生信息管理系统错误总结
  12. SVN的目录结构,trunk、tag、branches
  13. Zynga和Unity:独家奖励广告
  14. rust腐蚀帧数_腐蚀游戏怎么提高帧数 Rust设置隐藏画质提高FPS教程
  15. 云和恩墨 oracle 监控,产品速递 | 云和恩墨Bethune Pro2——数据库实时监控和智能巡检平台...
  16. 工作中可能用到的——集中式版本控制系统SVN
  17. 通过DataEase行列权限设置实现数据权限管控
  18. 关于error: The following untracked working tree files would be overwritten by checkout的解决方案
  19. vue3+ts项目中使用水球图
  20. mysql读缓存_优化MySQL,还是使用缓存?读一篇文章有感

热门文章

  1. 隔空投送怎么打开「详细教程」
  2. IBM ServerGuide引导盘地址
  3. WebService 实例应用
  4. HBASE分布式安装
  5. Excel中四舍六入五成双的最佳函数算法
  6. 上海市人才引进落户条件有哪些
  7. 深度神经网络预测模型,人工神经网络回归分析
  8. 基于stm32硬件IIC的oled显示
  9. 【面试】个人宝典 查缺补漏
  10. java开发常用四大框架_前端开发框架