位置: 编程技术 - 正文

JS中attr和prop属性的区别以及优先选择示例介绍(jquery中attr和prop)

编辑:rootadmin

推荐整理分享JS中attr和prop属性的区别以及优先选择示例介绍(jquery中attr和prop),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js的attribute,js中attr的用法,js prop attr,js里的attr,js中attribute,js中attribute和property,js中attribute,js中attribute和property,内容如对您有帮助,希望把文章链接给更多的朋友!

相比attr,prop是1.6.1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery1.6之前不能正常运行,因为window和document中不能有attributes。prop应运而生了。

既然我们想知道他们两的区别,最好就看看他们的源代码,不要被代码长度所吓到,我们只看关键的几句:

prop方法代码(jQuery版本1.8.3)

attr方法里面,最关键的两行代码,elem.setAttribute( name, value + “” )和ret = elem.getAttribute( name ),很明显的看出来,使用的DOM的API setAttribute和getAttribute方法操作的属性元素节点。而prop方法里面,最关键的两行代码,return ( elem[ name ] = value )和return elem[ name ],你可以理解成这样document.getElementById(el)[name] = value,这是转化成JS对象的一个属性。

既然明白了原理是这样,我们来看看一个例子:

el.attr(“style”)输出undefined,因为attr是获取的这个对象属性节点的值,很显然此时没有这个属性节点,自然输出undefinedel.prop(“style”)输出CSSStyleDeclaration对象,对于一个DOM对象,是具有原生的style对象属性的,所以输出了style对象至于document.getElementById(“test”).style和上面那条一样

接着看:

首先用attr方法给这个对象添加abc节点属性,值为,可以看到html的结构也变了

el.attr(“abc”)输出结果为,再正常不过了el.prop(“abc”)输出undefined,因为abc是在这个的属性节点中,所以通过prop是取不到的

JS中attr和prop属性的区别以及优先选择示例介绍(jquery中attr和prop)

我们再用prop方法给这个对象设置了abc属性,值为,可以看到html的结构是没有变化的。输出的结果就不解释了。

上面已经把原理讲清楚了,什么时候用什么就可以自己把握了。

提一下,在遇到要获取或设置checked,selected,readonly和disabled等属性时,用prop方法显然更好,比如像下面这样:

显然,布尔值比字符串值让接下来的处理更合理。

PS一下,如果你有JS性能洁癖的话,显然prop的性能更高,因为attr需要访问DOM属性节点,访问DOM是最耗时的。这种情况适用于多选项全选和反选的情况。

大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined。

jq提供新的方法“prop”来获取这些属性,就是来解决这个问题的,以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。

那么,什么时候使用attr(),什么时候使用prop()?1.添加属性名称该属性就会生效应该使用prop();2.是有true,false两个属性使用prop();3.其他则使用attr();项目中jquery升级的时候大家要注意这点!

以下是官方建议attr(),prop()的使用:

以下是官方建议attr(),prop()的使用:

javascript数组操作方法小结和3个属性详细介绍 最近一直在用js,好好研究了下js数组的操作,在这里总结一下。1、数组的创建vararrayObj=newArray();//创建一个数组vararrayObj=newArray([size]);//创建一个数组并

中文输入法不触发onkeyup事件的解决办法 这两天做一个需要实时监控文本框输入的功能,碰到了中文输入法无法触发onkeyup事件的恶心问题。具体表现是这样的:当监听一个input的keyup的事件的

js中一维数组和二位数组中的几个问题示例说明 js中的数组,可以存放各种数据类型(数值,字串)js中的数组没有越界,当输出的数组下标越界了,会显示undefined。js中的数组是默认动态增长的遍历

标签: jquery中attr和prop

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

上一篇:javascript时间函数大全(js时间范围)

下一篇:javascript数组操作方法小结和3个属性详细介绍(javascript数组的方法)

  • 缴纳印花税的会计凭证
  • 印花税科目会计分录
  • 讲课费怎么代扣代缴个人所得税
  • 财产租赁合同印花税计税依据含税吗
  • 咨询费计入什么管理费用的什么科目
  • 认购股份有什么好处
  • 自建模具怎么做账
  • 以前年度损益调整结转到未分配利润
  • 票据利息科目怎么设置
  • 查补以前年度所得税如何填写申报表
  • 印花税多缴纳怎么办
  • 以前多计提了应付职工薪酬怎么平账?
  • 柴油暂估入账
  • 在建工程进项税额
  • 零余额账户银行余额调节表
  • 充值卡充值发票可以报销吗
  • 异地施工需要缴纳什么税
  • 逾期增值税扣税凭证抵扣问题
  • 公司在走注销流程被起诉了怎么办
  • 土地使用税的计算公式举例子
  • 合伙企业个人所得税经营所得怎么申报
  • 企业出售已使用过的固定资产税率
  • 老板带员工出去吃饭
  • 创业带动的就业是什么
  • 差额发票如何缴纳增值税
  • 什么是大头小头
  • 电子承兑签收后多久可以到账
  • 合同负债和预收账款的关系
  • 在window10中可以使用什么窗口
  • 怎么利用喜欢自己的人
  • 微软系统管理员账号
  • 超市购物卡返点一般是几个点
  • php文件可包含哪三部分代码
  • php怎么自学
  • 贷款损失准备是什么类科目
  • 向境外支付技术服务费怎里面的增值税怎么入账
  • windows搭建dvwa
  • 普通发票主营业务怎么填
  • 期间费用的会计科目
  • 逾期增值税扣税凭证
  • 在一株植物上行走的作文
  • 合并报表六大抵消分录
  • php文件缓存方法有哪些
  • 固定资产一次性折旧政策2023
  • Vue3 script setup 语法糖详解
  • 图像识别算法汇总表
  • 产成品和库存商品两个一级科目怎么填
  • 现代服务增值税纳税义务发生时间
  • 工会经费可以发购物卡吗
  • 学电脑哪个网站比较好
  • 销项负数会计分录怎么写
  • 住房公积金有什么好处和优势?
  • 可供分配的利润包括
  • 长期股权投资稀释股权的两种
  • 公关费用计入什么科目比较好
  • 冲帐发票
  • 一次性加速折旧额怎么算
  • 上年结转会计分录
  • 公司支付的劳务费如何走不用交税
  • 把其他应付款转成实收资本的话需要去工商改注册资本么
  • 新车一次能开多少时间
  • 减免的增值税要交所得税吗
  • 进项税额抵扣好还是不抵扣好
  • 土地属于固定资产吗 会计
  • 公司坏账率一般多少
  • win10预览版21301bug
  • kdeskcore.exe是什么
  • win7安装cad2022
  • Linux Shell 通配符、元字符、转义符使用实例介绍
  • 基于android的app
  • 深入浅出python
  • java教程
  • 备忘录全部笔记
  • bootstrap要学到什么程度
  • 山东国地税合并6月挂牌
  • 税务非正常户转正常户的申请报告
  • 购买增值税发票税务局打电话来问怎么处理?
  • 什么是深入调研工作
  • 收缴和缴纳的区别
  • 加强监督管理工作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设