自定义数据属性是在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()方法引用的属性名的形式不同。