data-*属性——使用自定义属性的方式存储数据
HTML5提供了data-*属性能存储页面或应用程序的私有自定义数据。只需在属性前加上data-前缀即可,值可以是任意字符串。
存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。
data-* 属性包括两部分:
- 属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符
- 属性值可以是任意字符串
注意:用户代理会完全忽略前缀为 "data-" 的自定义属性。
data-属性的一大好处是所有浏览器都支持,可以使用getAttribute方法来获取data-属性的值,用setAttribute方法来设置值。
在JavaScript中通过元素的dataset属性访问data-属性的值,dataset是一个DOMStringMap对象,使用它比使用getAttribute更方便,不用加上data-前缀。
eg: tree.dataset.leaves='46';
如果要删掉一个值,将其置为null,或者使用delete
tree.dataset.leaves=null;
delete tree.dataset.leaves;
jQuery的data方法也可以访问元素的data-属性:
var $tree=$('#tree');
$tree.data('plant-height');
jQuery的data方法会自动转换数据类型:
console.log(typeof $tree.data('leaves')) //number
可以自动反序列化JSON数据,这样可以在后端生成模板时将序列化成JSON直接存入HTML中。
data属性的适用情况:
存储组件日后可能被JavaScript使用到的参数(元素的高度和透明度)
存储于模块关联的数据
存储分析数据(配合GA或者其他数据分析追踪工具)
存储游戏中的值(生命值,魔法值,攻击力等)
不适用的情况:
已经有更适合的属性,说明信息最好存在title属性里,而不是类似data-description的属性
自定义data属性和微格式数据不能混用,两者并无直接关系。微格式通常提供给第三方的程序(如搜索引擎)而自定义data属性是为你自己的程序使用。
不要利用data属性作为应用CSS样式的标准
data-*属性——使用自定义属性的方式存储数据的更多相关文章
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
- Android提供了5种方式存储数据:
--使用SharedPreferences存储数据: --文件存储数据: --SQLite数据库存储数据: --使用ContentProvider存储数据: --网络存储数据: 一:使用SharedP ...
- 用SharedPreference或文件的方式存储数据
一.用SharedPreference存储数据 当程序有少量的数据需要保存,而这些数据的格式比较简单(例如一些配置信息),这个时候就可以使用SharedPreference来进行保存 下面例子将演示向 ...
- 搭建zipkin并以mysql的方式存储数据
zipkin以mysql的方式存储 (centos+java8+mysql+zipkin2.3.1) 前言: 这篇教程用于搭建已mysql作为存储的zipkin.(还不知道zipkin是什么的小伙伴请 ...
- sharedPreferences存储数据
sharedPreferences使用的是键值对的方式存储数据. 1.Android中三种获取sharedPreferences的方式 1)Context 类中的getSharedPreference ...
- jquery在元素中存储数据:data()
转自:http://www.php.cn/js-tutorial-405445.html 在元素中存储数据:data() 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html& ...
- android开发中的5种存储数据方式
数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...
- [ Android 五种数据存储方式之一 ] —— SharedPreferences存储数据
SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数. 主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceS ...
随机推荐
- Linux Kernel中断子系统来龙去脉浅析【转】
转自:http://blog.csdn.net/u011461299/article/details/9772215 版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,在一个device ...
- 兼容IE, Chrome的ajax function
gAjax.js var gAjax = (function () { /* paramObj:{ url: request url, method: GET or POST, encode: cha ...
- Hadoop集群管理之配置文件
一.配置文件列表如下: [hadoop@node1 conf]$ pwd /app/hadoop/conf [hadoop@node1 conf]$ echo $HADOOP_HOME /app/ha ...
- Swoole + zphp 改造为专门用来开发接口的框架
The other problem I had with Laravel Task Scheduling was that i really only wanted something to hand ...
- PHP中关于 basename、dirname、pathinfo 详解
basename(url) 返回路径中的文件名部分. dirname(url) 返回路径中的目录名称部分. pathinfo(url) 返回关于文件路径的信息. bas ...
- HTML5与CSS3权威指南
第一章:Web时代的变迁 HTML5放心使用的理由: 兼容性:HTML5在老板本的浏览器上也可以正常运行: 实用性:HTML5内部并没有封装什么很复杂的,不切实际的功能,而只是封装了简单实用的功能: ...
- Serializable接口使用纪实
这两天依领导要求使用sonar工具测试了一下项目代码,其中有一个问题是 而这个类的结构大概是这样的: public class Demo<T> implements Serializabl ...
- Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? Java new Thread(new Runnable() { @Override public void ru ...
- 将turnserver设定成开机启动
1.创建一个文件,在目录/etc/init/下面 #sudo vim /etc/init/turnserver.conf 2.添加如下内容 description "turn server& ...
- HDU 3746:Cyclic Nacklace
Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...