首页 > 程序开发 > web前端 > JavaScript >

jQuery中的attr()和prop()的区别和联系

2017-01-12

jQuery中的attr()和prop()两种方法,都是用来获取 设置 attributes 和properties的值的,其中,prop() 是从jQuery 1 6 开始新增的一个方法。既然两种方法的作用一样,为何还要新增一个方法呢?那是因为用 attr() 获取或设置属性的值的时候,会出现不一致的行为。

jQuery中的attr()和prop()两种方法,都是用来获取/设置 attributes 和properties的值的,其中,prop() 是从jQuery 1.6 开始新增的一个方法。既然两种方法的作用一样,为何还要新增一个方法呢?那是因为用 attr() 获取或设置属性的值的时候,会出现不一致的行为。

根据官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()。

例如:checked属性即分为attribute->checked,和property->true,false。

对于一个checkbox,若未定义checked="checked",alert($.attr("checked")) 的结果是undefined。若已定义则结果是checked。attribute并不随着checkbox的状态变化而改变。

使用prop($.attr("checked"))的话输出则分别为false和true。property则随其变化而变化。

所以在修改checked属性时要使用prop()。

相关文章
最新文章
热点推荐