重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
很明显,attr和prop分别是单词attribute和property的缩写,并且它们均表示属性的意思。不过,在jQuery中,attribute和property却是两个不同的概念。attribute表示HTML文档节点的属性,property表示JS对象的属性。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了池州免费建站欢迎大家使用!
prop和attr的根本区别在于:对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
二者都可以获取dom的属性,但是参数不同:attr : 获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。
相比attr,prop是1才新出来的,两者从中文意思理解,都是获取/设置属性的方法(attributes和properties)。只是,window或document中使用.attr()方法在jQuery6之前不能正常运行,因为window和document中不能有attributes。
其实不然,prop 方法是 jQuery v1 才新出来的,性能要更好一些,解决了 window 或 document 无法使用 attr 方法的问题,同时在获取元素状态时返回布尔值,大大方便了对状态的判断。
若要检索和更改DOM属性,比如元素的checked, selected, 或disabled状态,请使用.prop()方法。Attributes vs. Propertiesattributes和properties之间的差异在特定情况下是很重要。
没有太大区别。一般情况下具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()。以下来自网络,有兴趣可阅读:jQuery 6 开始新增了一个方法 prop()。
boolean attributes,比如:checked,仅被设置成默认值或初始值。在一个checkbox的元素中,checked attributes在页面加载的时候就被设置,而不管checkbox元素是否被选中。properties就是浏览器用来记录当前值的东西。
属性是一个字符串,而DOM中的checked属性则是一个布尔值。对于布尔值属性,最后是测试 DOM属性而不是HTML属性,以确保跨浏览器的一致行为。所以,从6版本开始,jQuery 提供了新的方法prop()来获取这些属性。
使用prop($.attr(checked))的话输出则分别为false和true。property则随其变化而变化。所以在修改checked属性时要使用prop()。prop()在jQuery6版本后新增。
从 jQuery 6 开始, .prop()方法 方法返回 property 的值,而.attr() 方法返回 attributes 的值。
1、最初的代码做法是console.log($(:radio[value=+data[2]+]).attr(checked));但测试后有问题 在分别选中男女以后 就会失效。
2、让页面中所有的radio可用。(input:radio).attr(disabled,false);让页面中所有的radio不可用。(input:radio).attr(disabled,disabled);让某个radio置于选中状态。
3、最近在项目中,遇到一个问题,测试全选/反选功能时,第一次对母框进行选中/非选中时,能同步子框的全选/反选状态,之后再点击母框,子框就没反应了。本文就为大家带来一篇解决JQuery全选/反选第二次失效的问题。
4、eq(0)).attr(checked,checked); 这样就是第一个选中咯。jquery中,radio的选中与否是这么设置的。(#rdo1).attr(checked,checked);(#rdo1).removeAttr(checked);还有问题hi我哦。
5、没在radio上用过change事件,一般radio都是通过click事件处理的。如 所以我也不知道这是不是bug,但是肯定可以绕过去的。