jquery1.6中新加了一個方法prop(),一直沒用過它,官方解釋只有一句話:獲取在匹配的元素集中的第一個元素的屬性值。 jquery
官方例舉的例子感受和attr()差很少,也不知道有什麼區別,既然有了prop()這個新方法,不可能沒用吧,那何時該用attr(),何時該用prop()呢? 瀏覽器
你們都知道有的瀏覽器只要寫disabled,checked就能夠了,而有的要寫成disabled = "disabled",checked="checked",好比用attr("checked")獲取checkbox的checked屬性時選中的時候能夠取到值,值爲"checked"但沒選中獲取值就是undefined。 async
jq提供新的方法「prop」來獲取這些屬性,就是來解決這個問題的,之前咱們使用attr獲取checked屬性時返回"checked"和"",如今使用prop方法獲取屬性則統一返回true和false。 spa
那麼,何時使用attr(),何時使用prop()?
1.添加屬性名稱該屬性就會生效應該使用prop();
2.是有true,false兩個屬性使用prop();
3.其餘則使用attr();
項目中jquery升級的時候你們要注意這點! code
如下是官方建議attr(),prop()的使用: ip
Attribute/Property | .attr() |
.prop() |
---|---|---|
accesskey | √ | |
align | √ | |
async | √ | √ |
autofocus | √ | √ |
checked | √ | √ |
class | √ | |
contenteditable | √ | |
draggable | √ | |
href | √ | |
id | √ | |
label | √ | |
location ( i.e. window.location ) | √ | √ |
multiple | √ | √ |
readOnly | √ | √ |
rel | √ | |
selected | √ | √ |
src | √ | |
tabindex | √ | |
title | √ | |
type | √ | |
width ( if needed over .width() ) |
√ |