1. 程式人生 > >jquery獲取自定義屬性(attr和prop)例項介紹

jquery獲取自定義屬性(attr和prop)例項介紹

$("form").attr("check"); $("form").prop("check"); 兩種都可以,不過新版jquery推薦第二種,兩個在其他方面都差不多,我發現的唯一不同就是在checkbox上的時候,需要用prop,不然IE瀏覽器會不相容

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();
專案中jquery升級的時候大家要注意這點!


jquery中用attr()方法來獲取和設定元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經常用到attr(),attr()有4個表示式。



1. attr(屬性名       //獲取屬性的值(取得第一個匹配元素的屬性值。通過這個方法可以方便地從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應屬性,則返回 undefined )

2. attr(屬性名, 屬性值)   //設定屬性的值 (為所有匹配的元素設定一個屬性值。)

3. attr(屬性名,函式值    //設定屬性的函式值  (為所有匹配的元素設定一個計算的屬性值。不提供值,而是提供一個函式,由這個函式計算的值作為屬性值。)

4.attr(properties)    //給指定元素設定多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }。(這是一種在所有匹配元素中批量設定很多屬性的最佳方式。 注意,如果你要設定物件的class屬性,你必須使用'className' 作為屬性名。或者你可以直接使用'class'或者'id'。)

那麼怎麼刪除屬性呢?

jquery中刪除屬性的關鍵詞是: removeAttr 注意A是大寫的. 看看怎麼用的:

同樣是用法一中的html程式碼, 我想刪掉li的title屬性, 那麼就這樣:

複製程式碼程式碼如下:
<script> 
$("ul li:eq(1)").removeAttr ("title"); 
</script> 那麼是否有跟attr()相似的屬性呢?
jquery中val()與之類似,
$(this).val();獲取某個元素節點的value值,相當於$(this).attr("value");
$(this).val(value);設定某個元素節點的value值,相當於$(this).attr("value",value);