当前位置:  开发笔记 > 编程语言 > 正文

我可以在一个HTML"data-"元素中有多个值吗?

如何解决《我可以在一个HTML"data-"元素中有多个值吗?》经验,为你挑选了3个好方法。

我可以在一个HTML"data-"元素中有多个值吗?类似于类可以具有多个类名.

如果可能的话,我想创建一个CSS/JS库,它使用一个"data-"元素来容纳所有的库样式.例如:

这样,任何程序员自定义样式规则都可以进入元素类.我的理由是让可读性更容易,所以它一起看起来像:

Quentin.. 35

我可以在一个HTML"data-"元素中有多个值吗?

你可以有一个字符串.规范没有为属性中的数据定义任何特定格式,该格式旨在由特定站点的 JavaScript处理.

类似于类可以具有多个类名.

class属性采用空格分隔的类列表.

your_data_attribute_value.split(" ");如果您愿意,可以使用JavaScript .

使用CSS处理此问题将使用~= 属性选择器.

[att~ = val]
表示具有att属性的元素,该属性的值是以空格分隔的单词列表,其中一个单词恰好是"val".如果"val"包含空格,它将永远不会表示任何内容(因为单词用空格分隔).此外,如果"val"是空字符串,它将永远不会代表任何东西.


Jonathan Lam.. 6

AFAIK,我不认为data-属性可以将其转换为数组.相反,我认为它会将其解释为一个值,但它允许的.

如果你想这样做,你可能split()稍后会在JavaScript 中将它变成一个可用值数组.

在JSFiddle.net上查看此示例.



1> Quentin..:

我可以在一个HTML"data-"元素中有多个值吗?

你可以有一个字符串.规范没有为属性中的数据定义任何特定格式,该格式旨在由特定站点的 JavaScript处理.

类似于类可以具有多个类名.

class属性采用空格分隔的类列表.

your_data_attribute_value.split(" ");如果您愿意,可以使用JavaScript .

使用CSS处理此问题将使用~= 属性选择器.

[att~ = val]
表示具有att属性的元素,该属性的值是以空格分隔的单词列表,其中一个单词恰好是"val".如果"val"包含空格,它将永远不会表示任何内容(因为单词用空格分隔).此外,如果"val"是空字符串,它将永远不会代表任何东西.



2> Jonathan Lam..:

AFAIK,我不认为data-属性可以将其转换为数组.相反,我认为它会将其解释为一个值,但它允许的.

如果你想这样做,你可能split()稍后会在JavaScript 中将它变成一个可用值数组.

在JSFiddle.net上查看此示例.



3> hakre..:

CSS有快捷方式.class选择器,但它实际上是将名为"class"的属性解析为空格分隔值的列表.以下属性选择器在非快捷方式中支持此操作:

[att~=val]

表示具有att属性的元素,该属性的值是以空格分隔的单词列表,其中一个正好是"val".如果"val"包含空格,则它将永远不会表示任何内容(因为单词用空格分隔).如果"val"是空字符串,它也不会代表任何东西.

参考:http://www.w3.org/TR/CSS2/selector.html#class-html

由于你的问题被标记为CSS,你可能正在寻找它.关于如何完成属性值解析的规则也在该文档中给出,因此如果你试图在这个(如果有的话)上使用的javascript库不会覆盖它,那么应该很容易添加:

var list = $("div").data("library-name").split(/\s+/);
                                         ^^^^^^^^^^^^

这个与空白正则表达式的分割将字符串属性值解析为带有javascript和Jquery库的数组(用于访问DOM和数据属性).

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有