自定義數據屬性是在HTML5中新加入的一個特性。簡單來說,自定義數據屬性規范規定任何以data-開頭屬性名並且賦值。自定義數據屬性是為了保存頁面或者應用程序的私有自定義數據,這些自定義數據屬性保存進DOM中,對於整個DOM的布局和表現無任何影響,但是卻可以方便操控整個網頁的交互以及想要表達的效果。
比如我們想要統計一個頁面玩家的排行榜,但是DOM頁面的原生標簽並沒有提供這樣的一個類似的屬性。這時,就可以創建一個data-rank數據屬性,保存玩家的分數,利用JS去控制屬性的賦值以及邏輯分析,最終達到想要的效果。
對於數據屬性的值的獲取和設置,JQ提供了兩種方法attr()和data()。
這兩種方法,當只傳遞一個參數(標簽的屬性)的時候,可以獲取該屬性的值;
$(selector).attr(attribute)
當傳遞兩個參數的時候,可以設置一個標簽的屬性以及值,
$(selector).attr(attribute,value)
對於原生的屬性:
<a id="a_one" href="http://blog.csdn.net/it_surfer"></a>
<a id="a_two"></a>
則利用$("#a_one").attr("href")可以獲取到id為a_one的a標簽的連接地址:http://blog.csdn.net/it_surfer;
利用$("#a_two").attr("href","http://blog.csdn.net/it_surfer"),就可以設置id為a_two的a標簽的連接地址為:http://blog.csdn.net/it_surfer
對於自定義數據屬性:
<a id="a_one" href="http://blog.csdn.net/it_surfer" data-num=50></a>此處給a標簽加了一個自定義數據屬性data-num,用來統計訪問改連接的次數
則可以利用$("#a_one").attr("data-num",80)來給id為a_one的a標簽來給data-num賦值
也可以利用$("#a_one").data("num",80)來給id為a_one的a標簽來給data-num賦值
同理,可以利用$("#a_one").attr("data-num")來獲取id為a_one的a標簽的data-num的值
也可以利用$("#a_one").data("num")獲取id為a_one的a標簽的data-num的值
注意attr()和data()方法引用的屬性名的形式不同。