一:相同:都用于设置或获取指定的属性
区别:
一:操作对象不同
1:attrbiute操作htnl文档节点的属性,prop操作js对象的属性
例如:<div id="aa" class="bb"></div> 这里的id class就是该元素文档节点的attribute
obj={name:"httr",age:18,url:"http://www.365mini.com/"};这里的name age url就是对象的prop
2:attr()相当于DOM中getAttribute()和setAttribute()两个方法
prop()相当于js原生对象中的获取和设置属性的方法
例如 element.setAttribute("id", 145);相当于 $element.attr("id","145")
element["name"] = "name值";相当于$element.prop("name","name值")
3:prop某些属性的更改也会影响到元素节点上对应的属性
例如:<div id="htt"><div>
var ele=document.getelementById("htt")
$(ele).attr("id") 此时结果为htt
$(ele).prop("id","lzx") 使用prop方法修改属性
console.log($(ele).attr("id")) 此时元素的属性为lzx
4:属性值类型不同
attr()设置的属性值只能是字符串类型
prop因为是对js对象进行操作 所以属性值为任意类型
5:新改变
对于checked selected disabled 这些属性的状态用prop()获取或者设置(值为true 或false )
如果在之前版本中用attr()获取或设置的话 他返回的是checked selected disabled 且如果没有该属性返回undefined
能够使用prop()的操作都使用prop()