attr和prop有很多相同的地方,比如都可以操作标签的属性节点,而且获取的时候都只可以获取到相同节点的第一个,例如这样:
$('span').attr('class');和$('span').prop('class');都只能返回第一个span的class
同理做属性的修改和添加,删除也都一样。
但是,存在即合理。
而这之间的区别表现在特殊节点属性上,例如selected,
console.log($('input').attr('selected'));//返回undifined
console.log($('input').prop('selected'));//返回false
如果还不明白的话可以看下官方文档是这么说的: