jQuery中prop()方法和attr()方法的区别浅析

    之前在利用jQuery获取checkbox和radio是否被选中的的时候attr()方法坑了好几次,有时候能获取到值有时候就获取不到(undefined),也怪不得别人,自己学艺不精。其实,获取是否被选中的方法最好的还是利用原生的js直接获取,不过既然遇到了这个问题也就有必要学习一下了。

    jQuery1.6中新加了一个方法prop(),property(属性)的前四个字母,之前一直没用过(也不知道,见识短浅了)。之前只知道只要checkbox选中,则利用attr()方法就可以获取到checked的值(e.attr('checked')),选中时为“checked”,但未选中时就是undefined(好像不太喜欢这个)。

jQuery提供了prop()方法来获取这种属性,使用prop()方法可以统一返回true或false。

    总结一下,什么时候应该用attr(),什么时候应该用prop()呢?

    以下是官方建议:

Attribute/Property .attr() .prop()
accesskey  
align  
async
autofocus
checked
class  
contenteditable  
draggable  
href  
id  
label  
location*
multiple
readOnly
rel  
selected
src  
tabindex  
title  
type  
width**  

自己总结就是:

1.添加什么属性名该属性就会生效用prop();

2.是true,false两个属性值的使用prop();

3.其他的就是用attr()吧。

猜你喜欢

转载自blog.csdn.net/xukun5137/article/details/52175921