都用于读取和设置DOM元素节点的属性
不同:
$.attr()用于DOM元素本身的属性
$.prop()用于DOM节点对应的JS属性(源于DOM元素到JS对象的映射)
源于两者在jquery类库的实现方法:
$.attr()使用原生JS里的getAttribute()和setAttribute();
$.prop()使用的是通过获取DOM节点,然后调用该对象的内置属性(非内置对象无法获取到)
设置属性限制:
$.attr()可以设置和读取内置和自定义的属性
$.prop()只能读取DOM元素或window对象的一些内置属性,如果不是DOM元素对象的内置属性就无法设置和读取
接收参数的类型:
$.attr()接收字符串,其他类型都会调用toString()转换为字符串。
$.prop()除了字符串,还可以接收布尔值。
返回类型:
$.attr()返回的属性值都是字符串,
$.prop()返回的可以是字符串也可以是布尔值(prop()在调用表单的某些属性的时候比较有用,input元素的checked, 使用attr返回的是checked,而用prop返回的是true或false)
两者的详细用法参见园子里的博客。。。