《移动网页设计与开发 HTML5+CSS3+JavaScript》—— 2.7 数据属性

简介:

本节书摘来异步社区《移动网页设计与开发 HTML5+CSS3+JavaScript》一书中的第2章,第2.7节,作者:【英】Peter Gasston,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.7 数据属性

HTML5扩展元素含义还可以通过另一种方式:使用数据属性。这些都是用户定义的属性,这些属性的值能提供元素的相关信息,而无需给予机器或人类任何额外的语义。接下来,让我们看看更详细的解释。

假设我们想输出一组数据,其中每一项都有两个值—名称和编号 (例如,独特的数据库ID);我们想将名称显示在文档中,还想让编号可以用于脚本运行中。从目前情况来看,没有相关的属性可以用来存储该信息;我们可能不得不使用这样一个类:

80f2e4bab4a2314551aa87b02bfc298e08178a26

创建数据属性的目的,就是为了将数据相关联。数据属性能像类一样,让你存储这些额外的信息,而不暗含任何额外的意思。每个数据属性开始使用文字数据,然后使用用户定义的唯一键。在我们的示例中,可以使用这个:

37c90624dcd1d8a1f68b86337bb62f50e65faa73

现在,数据属性id与Peter的值关联。虽然该属性没有给元素额外的语义,但是可以为其他进程提供上下文,有关此数据的信息或许和JSON文件相关联,所以,可以使用JavaScript来查询。

2.7.1 数据属性API

使用数据集(dataset)属性的简单DOM API,脚本可以更加容易地获取该数据。若要获取一个数据属性的值,可以将数据值属性和正在查询的属性的键一起使用:

2af62c95159483b88f00006d0d1ec5bf060e0cdc

当我们把它应用于此示例的标记中,返回的结果将是123。我们还可以使用数据集更新属性值:

24db750ee97075098589e4007a7c09a417d362ad

以下示例,演示了它是怎么起作用的:

8d49c034ca8d725ce443505c3ed09b72687066a2

在此示例中,我们执行了三个操作:首先获取id数据,然后将其设置为100,最后再次获取它。每一次都要把结果登录到控制台。输出结果如图2-5所示。

8d9d24c11df31c92da60f771fb68158bc0e2fba3

2.7.2 jQuery和数据属性

如果使用jQuery,与数据属性的互动甚至会变得更简单(如果读者还不知道什么是jQuery,则可以先翻阅第5章中的解释,读完它之后再回到这一节)。下面的例子是使用data()方法获取和设置的数据值:

63bbc88f662fc0a814316dd1595da8217e9858f8

此代码类似于前一节所示的代码,将返回相同的值:123。

然而,不同于数据集以一个字符串的形式返回所有的结果,data()类函数有一大优势:它还要对属性的值进行解析,并将它转换为正确的类型。如果使用前面的示例,该类型会是一个数字。但如果把标记更改为:

1961b707eb8c464814613008672efc5b2b59c46a

再次使用data()类函数:

a4e7ec8307bc9b44d2e7ec5f9ef6cfdf01db4edc

变量name的值是Peter,其类型是一个字符串。

若想看看它是怎么运行的,可以参考示例文件data-attributes-jquery .html.。在该示例文件中,我使用同一标记把两个不同的数据属性相结合:

5ee24515907d338985b12ff045ec2d2080ea2e84

再使用jQuery,把每个数据属性的类型用JavaScript的typeof运算符登录到控制台中:

e6a28308f45bcff63c7c071660d054fe99a79bb0

图2-6显示了输出结果。

a66c1309956734c2f07522c485f0e0e5ad3de0ed

2.7.3 野生数据属性
数据属性如此有用,以至于一些公司已经开始广泛使用它们。Twitter很快就把它们用作一个在网页上添加Twitter按钮的选项,把某些内容相关的参数存储在一组预定义的属性里:

71f42cbcbcc04c31078642135a8e88a0a581dd88

通过在网页上的其他位置包含一个对Twitter的JavaScript的调用,此元素被一个使用所提供数据的Tweet按钮所替换。很多其他的社会服务,如Facebook、Google+和LinkedIn,也采取相同的方式使用数据属性。

相关文章
|
20天前
|
XML 前端开发 数据格式
css核心组成部分包括选择器、属性和值。
【4月更文挑战第5天】css核心组成部分包括选择器、属性和值。
18 7
|
1月前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它采用中间件系统增强功能,如日志和错误处理,集成多种模板引擎(EJS、Jade、Pug)用于HTML渲染,并提供安全中间件提升应用安全性。其可扩展性允许选用合适插件扩展功能,加速开发进程。
|
2天前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
16 2
|
2天前
|
JavaScript 前端开发
js开发:请解释this关键字在JavaScript中的用法。
【4月更文挑战第23天】JavaScript的this关键字根据执行环境指向不同对象:全局中指向全局对象(如window),普通函数中默认指向全局对象,作为方法调用时指向调用对象;构造函数中指向新实例,箭头函数继承所在上下文的this。可通过call、apply、bind方法显式改变this指向。
7 1
|
2天前
|
JavaScript 前端开发
js开发:请解释同步和异步编程的区别。
同步编程按顺序执行,易阻塞;异步编程不阻塞,提高效率。同步适合简单操作,异步适合并发场景。示例展示了JavaScript中同步和异步函数的使用。
12 0
|
6天前
|
前端开发 UED
CSS cursor的一些相关属性
CSS cursor的一些相关属性
|
9天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
9天前
|
存储 前端开发 JavaScript
Sass:提升CSS开发效率的利器
Sass:提升CSS开发效率的利器
13 0
|
9天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1
|
9天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册