给元素自定义属性是在HTML5中新加入的一个特性。简单来说,自定义数据属性规范规定任何以data-开头属性名并且赋值。自定义数据属性是为了保存页面或者应用程序的私有自定义数据,这些自定义数据属性保存进DOM中,对于整个DOM的布局和表现无任何影响,但是却可以方便操控整个网页的交互以及想要表达的效果。
比如我们通过一个对象得到了某个地区所有的城市,但是呢,我们还需要得到城市的其他信息以方便接下来的操作,我们就可以在这个城市的标签中添加一个自定义属性,用来存放这个地区的其他信息,操作的时候直接通过我们设置的属性名拿值即可,可以很大空间的提升我们和计算机的操作量。
往属性里面存值的时候注意一定是字符串或者,所以需要存的数据是一个对象的时候,记得转化成字符串
比如我们通过一个对象得到了某个地区所有的城市,但是呢,我们还需要得到城市的其他信息以方便接下来的操作,我们就可以在这个城市的标签中添加一个自定义属性,用来存放这个地区的其他信息,操作的时候直接通过我们设置的属性名拿值即可,可以很大空间的提升我们和计算机的操作量。
往属性里面存值的时候注意一定是字符串或者,所以需要存的数据是一个对象的时候,记得转化成字符串
var cityStr = JSON.stringify(cityObj);
对于数据属性值的获取和设置,JQ提供了两种方法attr()和data()
这两种方法,当只传递一个参数时,这个参数时属性名,是获取该属性的值,
当传递两个参数时,是设置属性名,属性值
$(selector).attr(attribute,value)
下面是用data来实现存取自定义属性的小案例:
<p id="box1"></p><button id="btn1">click1</button><button id="btn2">click2</button></body><script src="../assets/jquery-1.9.1.min.js"></script><script> //点击click1向box添加属性student,属性值为tom $("#btn1").click(function () { $("#box1").data("student","tom") }); //通过属性名获取属性值 $("#btn2").click(function () { alert($("#box1").data("student")); });</script>
用attr来实现同样的效果
<script> $("#btn").click(function () { $("#box1").attr("data-student","tom") }); $("#btn2").click(function () { alert($("#box1").attr("data-student")); });</script>
通过开发者工具可以看到,当点击保存按钮(click1)的时候,自动给box1添加了自定义的属性,用data方法添加的时候这里并不会看见data-student=”tom“,依旧可以通过它取出来其值”tom“,两个并无多大区别,只是引用方式不同而已。属性名前面加上 data- 是H5规范写法,最好加上。
这里还要注意的是
1. 自定义的属性名不可以与系统的属性名相同,eg: class、name….
2. 所有的属性值只能是字符串,不管是系统还是自定义的
3. Html5规定,给元素自定义数据属性时,属性名称以data-开头,但是真正的属性名不包括data-
以上就是H5中如何获取和设置自定义属性的详细内容,转载自php中文网
发表评论 取消回复