传统的HTML中如果想要实现某种样式,可以在标签上添加id、class、或者在标签上添加固有属性,通过CSS中的类选择器、id选择器、属性选择器来实现,在许多UI框架中,例如:bootstrap,可以通过data-[ ]自定义属性,不用写一行js代码,方便了很多。同样在HTML5可以通过data-自定义属性名来给元素添加自定义的属性名。一旦添加完成之后。通过JS可以获取以及设置自定义属性。
自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不保存到数据库中。
自定义属性获得是通过getAttribute('属性')获得,但有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。
一、自定义属性(html5标准)data-属性名称="属性值"
自定义属性的名称驼峰式命名规则需要用-隔开
自定义属性名称如果连在一起写,大写会自动转为小写
data-user="eric"======>属性名称是user data-user-name="eric"===>属性名称是userName data-userName="eric"=====>属性名称是username
二、jquery自定义属性常用操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>实例</title> <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(document).ready(function(){ var t1=$('.test').data();//获取该元素全部自定义属性 var t2=$('.test').data('age');//获取指定自定义属性 console.log(t1);//{age:18,user:"li"} console.log(t2);//18 $('.test').data('age',20);//改变自定义属性 console.log(t1);//{age:20,user:"li"} $('.test').data('weight','60kg');//设置新自定义属性 console.log(t1);//{age:20,user:"li",weight:"60kg"} }); </script> </head> <body> <div class="test" data-user="li" data-age="18"> </div> </body> </html>
三、jQuery中选择查找自定义属性具有特定值的所有元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>实例</title> <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(document).ready(function(){ $('a[data-url="1.html"]').html('<span style="color:red">5.html</span>'); $('a[data-url="2.html"]').html('<span style="color:yellow">6.html</span>'); }); </script> </head> <body> <div class="test" data-user="li" data-age="18"> <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" data-url="1.html">1.html</a> <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" data-url="1.html">1.html</a> <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" data-url="2.html">2.html</a> <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" data-url="3.html">3.html</a> <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" data-url="4.html">4.html</a> </div> </body> </html>
原文地址: