jQuery中attr和prop在修改checked属性时的区别
1个回答
2016-07-12 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
大多数情况下, HTML属性与对应的DOM属性的作用都是一样的, jQuery可以帮我们处理名
字不一致的问题。可是,有时候我们的确需要留意这两种属性的差异。某些DOM属性,例如
nodeName、 nodeType、 selectedIndex和childNodes,在HTML中没有对应的属性,因此通
过.attr()方法就没有办法操作它们。此外,数据类型方面也存在差异,比如HTML中的checked
属性是一个字符串,而DOM中的checked属性则是一个布尔值。对于布尔值属性,最后是测试
DOM属性而不是HTML属性,以确保跨浏览器的一致行为。
所以,从1.6版本开始,jQuery
提供了新的方法prop()来获取这些属性。使用prop()的时候,返回值是标准属性:true\false,比如$(”#checkbox“).prop(‘disable’),不会返回‘disable’
或者”“,只会返回false\true。当然赋值也是如此,这样便统一了所有操作,无论是从语法上还是语义上。
按照官方的说法,大致是下面两个原则
第一个原则:只添加属性名称属性就会生效应该使用prop();
第二个原则:只存在true\false属性应该使用prop();
如果是设置了disabled和checked这些属性,应使用prop()方法,而不是attr()。
字不一致的问题。可是,有时候我们的确需要留意这两种属性的差异。某些DOM属性,例如
nodeName、 nodeType、 selectedIndex和childNodes,在HTML中没有对应的属性,因此通
过.attr()方法就没有办法操作它们。此外,数据类型方面也存在差异,比如HTML中的checked
属性是一个字符串,而DOM中的checked属性则是一个布尔值。对于布尔值属性,最后是测试
DOM属性而不是HTML属性,以确保跨浏览器的一致行为。
所以,从1.6版本开始,jQuery
提供了新的方法prop()来获取这些属性。使用prop()的时候,返回值是标准属性:true\false,比如$(”#checkbox“).prop(‘disable’),不会返回‘disable’
或者”“,只会返回false\true。当然赋值也是如此,这样便统一了所有操作,无论是从语法上还是语义上。
按照官方的说法,大致是下面两个原则
第一个原则:只添加属性名称属性就会生效应该使用prop();
第二个原则:只存在true\false属性应该使用prop();
如果是设置了disabled和checked这些属性,应使用prop()方法,而不是attr()。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询