1. 程式人生 > >jq中的attr和prop屬性

jq中的attr和prop屬性

全選 獲取值 checked () fin fine 返回 其中 一次

今天在做checkbox的全選等功能時剛開始用的是

$(‘input[type=‘checkbox‘]").attr("checked","true");
最後發現只有刷新第一次有效果,後面就沒有效果了,最後發現是attr的問題,最後改成prop後發現是可以的,
$(‘input[type=‘checkbox‘]").prop("checked","true");
其中的原因如下:

jquery1.6中新加了一個方法prop(),官方解釋只有一句話:獲取在匹配的元素集中的第一個元素的屬性值。

大家都知道有的瀏覽器只要寫disabled,checked就可以了,而有的要寫成disabled = "disabled",checked="checked",比如用attr("checked")獲取checkbox的checked屬性時選中的時候可以取到值,值為"checked"但沒選中獲取值就是undefined。

jq提供新的方法“prop”來獲取這些屬性,就是來解決這個問題的,以前我們使用attr獲取checked屬性時返回"checked"和"",現在使用prop方法獲取屬性則統一返回true和false。

那麽,什麽時候使用attr(),什麽時候使用prop()?
1.添加屬性名稱該屬性就會生效應該使用prop();
2.是有true,false兩個屬性使用prop();
3.其他則使用attr();



jq中的attr和prop屬性