位置: 编程技术 - 正文

jQuery 更改checkbox的状态,无效的解决方法

编辑:rootadmin

推荐整理分享jQuery 更改checkbox的状态,无效的解决方法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

今天写页面遇到复选框动态全选或全不选问题,正常写法如下:

but!第一次点击全选按钮input显示对勾,第二次就不行了,查了下有建议用prop的,亲测有效。那两者有啥区别呢?

jQuery函数attr()和prop()的区别:

1、操作对象不同

“attr”和“prop”分别是单词“attribute”和“property”的缩写,并且它们均表示"属性"的意思。

不过,在jQuery中,“attribute”和“property”却是两个不同的概念。attribute表示HTML文档节点的属性,property表示JS对象的属性。

在jQuery中,prop()函数的设计目标是用于设置或获取指定DOM元素(指的是JS对象,Element类型)上的属性(property);attr()函数的设计目标是用于设置或获取指定DOM元素所对应的文档节点上的属性(attribute)。

在jQuery的底层实现中,函数attr()和prop()的功能都是通过JS原生的Element对象(如上述代码中的msg)实现的。attr()函数主要依赖的是Element对象的getAttribute()和setAttribute()两个方法。prop()函数主要依赖的则是JS中原生的对象属性获取和设置方式。

当然,jQuery对这些操作方式进行了封装,使我们操作起来更加方便(比如以对象形式同时设置多个属性),并且实现了跨浏览器兼容。

此外,虽然prop()针对的是DOM元素的property,而不是元素节点的attribute。不过DOM元素某些属性的更改也会影响到元素节点上对应的属性。例如,property的id对应attribute的id,property的className对应attribute的class。

2、应用版本不同

jQuery 更改checkbox的状态,无效的解决方法

attr()是jQuery 1.0版本就有的函数,prop()是jQuery 1.6版本新增的函数。毫无疑问,在1.6之前,你只能使用attr()函数;1.6及以后版本,你可以根据实际需要选择对应的函数。

3、用于设置的属性值类型不同

由于attr()函数操作的是文档节点的属性,因此设置的属性值只能是字符串类型,如果不是字符串类型,也会调用其toString()方法,将其转为字符串类型。

prop()函数操作的是JS对象的属性,因此设置的属性值可以为包括数组和对象在内的任意类型。

4、其他细节问题

在jQuery 1.6之前,只有attr()函数可用,该函数不仅承担了attribute的设置和获取工作,还同时承担了property的设置和获取工作。例如:在jQuery 1.6之前,attr()也可以设置或获取tagName、className、nodeName、nodeType等DOM元素的property。

直到jQuery 1.6新增prop()函数,并用来承担property的设置或获取工作之后,attr()才只用来负责attribute的设置和获取工作。

此外,对于表单元素的“checked”、“selected”、“disabled”等属性,在jQuery 1.6之前,attr()获取这些属性的返回值为Boolean类型:如果被选中(或禁用)就返回true,否则返回false。

但是从1.6开始,使用attr()获取这些属性的返回值为String类型,如果被选中(或禁用)就返回“checked”、“selected”或“disabled”,否则(即元素节点没有该属性)返回undefined。并且,在某些版本中,这些属性值表示文档加载时的初始状态值,即使之后更改了这些元素的选中(或禁用)状态,对应的属性值也不会发生改变。

因为jQuery认为:attribute的“checked”、“selected”、“disabled”就是表示该属性初始状态的值,property的checked、selected、disabled才表示该属性实时状态的值(值为true或false)。

因此,在jQuery 1.6及以后版本中,请使用prop()函数来设置或获取checked、selected、disabled等属性。对于其它能够用prop()实现的操作,也尽量使用prop()函数。

以上这篇jQuery 更改checkbox的状态,无效的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

高效Web开发的个jQuery代码片段 在过去的几年中,jQuery一直是使用最为广泛的JavaScript脚本库。今天我们将为各位Web开发者提供个最实用的jQuery代码片段,有需要的开发者可以保存起

jQuery 自定义下拉框(DropDown)附源码下载 先给大家展示下效果图,喜欢的朋友可以下载源码哦效果演示源码下载sectionclass="main"divclass="wrapper-demo"divid="dd"class="wrapper-dropdown-1"tabindex="1"span手册网/spa

JQuery 设置checkbox值二次无效的解决方法 在此MVCASP.NET项目,我利用jqueryajax传输数据给后台controller控制层,返回数据给JQuery数据。首先必须清除checkbox的选中,因为是ajax的异步操作,是不刷新

标签: jQuery 更改checkbox的状态,无效的解决方法

本文链接地址:https://www.jiuchutong.com/biancheng/385066.html 转载请保留说明!

上一篇:jQuery实现鼠标经过购物车出现下拉框代码(推荐)(jquery 鼠标)

下一篇:高效Web开发的10个jQuery代码片段(web 开发)

  • 企业销售不动产增值税税率
  • 购买二手车还需要交购置税吗
  • 增值税一般纳税人和小规模纳税人的区别
  • 增值税发票抵扣是什么意思
  • 预交增值税附税税率
  • 一张报关单可以分两次退税吗
  • 工程公司的材料员在哪里考试
  • 联营企业子公司抵消比例
  • 已认证专票有误怎么回事
  • 出纳购买东西能报销吗
  • 多缴纳个人所得税怎么办
  • 对外支付代扣代缴企业所得税
  • 加盖发票专用章的是
  • 预付费卡税务处理
  • 外购货物用于捐赠的会计分录
  • 税控设备全额抵扣政策
  • 公司增资麻烦吗?
  • 银行回单手续费怎么找到对应金额
  • 以货抵债会计处理
  • 注册资金印花税什么时候开始交
  • 工伤医疗费会计分录
  • 存货成本有哪些问题
  • 企业土地未全部使用如何缴纳房产税?
  • 营改增后兼营非应税劳务的税务处理怎么做?
  • 怎么做增值税
  • 发票认证的注意事项包括
  • 简单了解php编程软件
  • 笔记本电脑保养常识电池
  • win10如何禁止
  • PHP:Memcached::isPristine()的用法_Memcached类
  • 定期支票丢了能取钱吗
  • pniopcac.exe是什么
  • ant design pro项目构建纯净版
  • 商业承兑可以去银行吗
  • 企业购买财务软件算什么费用
  • 企业营运资金管理存在的问题
  • 现金流量表 科目
  • php输出mysql查询结果
  • 令人感到惊艳
  • 材料暂估入账
  • 个体工商户可以给自己交社保吗
  • 在职工教育经费包括哪些
  • 自产货物进项税抵扣
  • 购买税控设备的分录怎么做
  • 业务招待费计入其他业务成本
  • 成本核算的科目有哪些
  • mysql创建和删除数据库
  • 建筑安装工程公司起名
  • 总资产报酬率的公式
  • 银行贴息一般多久能到账
  • 上年度多提财务费用
  • 收到免税发票怎么做账
  • 强制执行的款在执行局领取吗
  • 住宿费开的增值税专用发票怎么记账
  • 出现亏损
  • 出纳需要遵循的原则
  • sql server日期函数有哪些
  • centos7rpm安装命令
  • win10预览版选哪个
  • windows字体不显示
  • Win10系统怎样把Word转成PDF
  • liunx系统常用命令
  • linux中sudoers
  • win7系统检测
  • eclipce System.loadLibrary报错
  • linux rpm -i
  • Shell正则表达式获取指定字符串
  • cocos开发游戏
  • 基于jPlayer三分屏的制作方法
  • Node.js中的事件循环是什么意思
  • python 爬虫
  • unity3d Hair real time rendering 真实头发实时渲染
  • shell 比较大小
  • jquery自带的弹出框
  • android 实例教程
  • python读取一个文件并写入另一个文件
  • 一般纳税人注销公司需要查账吗
  • 个体税务登记资料不齐怎么办
  • 个体户操作流程
  • 社会救助档案管理规范化的好处
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设