H5 标签里加的data属性

H5 标签里加的data属性,第1张

Html5 data-* 属性定义和用法:

data-* 属性用于存储页面或应用程序的私有自定义数据

data-* 属性赋予我们在所有 HTML 元素上嵌入自定义 data 属性的能力。

存储的(自定义)数据能够被页面的 JavaScript 中利用,以创建更好的用户体验(不进行 Ajax 调用或服务器端数据库查询)。

data-* 属性包括两部分:

属性名不应该包含任何大写字母,并且在前缀 "data-" 之后必须有至少一个字符

属性值可以是任意字符串

注释:用户代理会完全忽略前缀为 "data-" 的自定义属性。

有三种方法访问和修改data:

1.使用getAttribute setAttribute 方法

div.setAttribute('data-options',{/*数据*/})

div.getAttribute("data-options");

2.使用dataset属性返回一个集合

div.dataset --> DOMStringMap { options:"{\"name\":\"John\"}", hidden:"true", lastValue:"43"}

可以访问,添加,删除

div.dataset.hidden

div.dataset.newAttr = "123"

delete div.dataset.hidden

3.使用jquery的data方法

.data( key, value )

.data( key, value )

.data( obj ) -->设置多个键值对

.data( key )

.data( key )

.data() -->返回一个集合

jQuery比较特殊的是,它会将返回值字符串自动转换为对应的数据类型。

比如上面的 $("div").data() --> {options : {"name":"John"}, hidden: true, lastValue: 43 }

注意:对于dataset属性和jQuery的data方法: data- 属性名如果包含了连字符,例如:data-last-value ,连字符将被去掉,并转换为驼峰式的命名,前面的属性名转换后应该是:lastValue 。

所谓data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放。使用data-*可以解决自定义属性混乱无管理的现状。确切的说data-*并不是自定义属性,而是解决自定义属性的一种方案。因为大部分自定义属性都是为了在标签上存储数据。

data-*里存储的内容可以使用JavaScript语言直接读取。相比不用data-*自定义属性更容易读取和存储。

data-*可以大大提高工作效率,例如ajax请求后获得的一列数据需要放在li标签里,那么我们在循环生产li标签的同时,可以依次设置data-*属性,这样,我们在写JavaScript语言来 *** 作li标签的时候,可以直接读取自定义的属性来获取li标签对应的数据对象。

data-*自定义属性可以使用jQuery库来解决兼容问题。

HTML中div里有data-index="6" 是自定义属性data-index的值为6的意思。

自定义数据属性的好处:

我们经常需要存储与不同DOM元素相关的信息。这些信息对读者来说可能并不重要,但如果

能够轻松访问它,将使我们的开发人员的生活变得更加轻松。

例如,假设您在网页上列出了不同的餐馆。在HTML5之前,如果您想存储有关餐馆提供的食物

类型或访问者距离的信息,您可以使用HTML class属性。如果您还需要存储餐厅id以查看用户

想要访问的特定餐厅,该怎么办?

为了摆脱这些问题,HTML5引入了自定义数据属性。名称以元素开头的元素的所有属性data-

都是数据属性。您还可以使用这些数据属性来设置元素的样式。

接下来,让我们深入了解数据属性的基础知识,并学习如何在JavaScript中访问它们的值。

正如我之前提到的,数据属性的名称将始终以data-。这是一个例子:

<li data-type="veg" data-distance="2miles" data-identifier="10318">

Salad King</li>

您现在可以使用这些数据属性来搜索和排序访问者的餐馆。例如,您现在可以向他们展示一定

距离内的所有素食餐厅。

扩展资料:

使用自定义属性的注意事项:

1、存储在这些属性中的数据应为string类型。任何可以进行字符串编码的东西也可以存储

在数据属性中。所有类型的转换都需要在JavaScript中完成。

2、只有在没有其他适当的HTML元素或属性时才应使用数据属性。例如,在元素class中存

储元素是不合适的data-class。

3、除data-前缀外,有效自定义数据属性的名称必须仅包含字母,数字,连字符( - ),点

(。),冒号(:)或下划线(_)。它不能包含大写字母。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11541405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存