9

就像我可以用来存储一些必要信息的标签?但 HTML 真的不需要或使用它吗?像 Visual Basic 上对象的标记属性一样工作吗?

4

5 回答 5

15

直到 HTML5 没有。data-*在 HTML 5 中,通过属性对此进行了规定。

例如:-

<div id="myStuff" data-mydata="here is my data">

在当前技术中,没有“官方”可以做到这一点。但是,所有浏览器都允许您向 HTML 元素添加任意属性,因此在 HTML4 中您可以这样做:-

<div id="myStuff" data-mydata="here is my data">

如您所见,这是相同的,但没有正式批准,如果您想要严格的 XHMTL 合规性,将被视为“损坏”。

您可以像访问其他任何属性一样访问该属性:-

var mydata = document.getElementById("myStuff").getAttribute("data-mydata");
于 2009-09-16T07:40:51.993 回答
3

您也许可以使用 html5 data-* 属性?它会在 html4 上验证失败,但它仍然可能是最好的选择......

于 2009-09-16T07:38:10.627 回答
1

如果您要存储要在 javascript 中使用的数据,您还可以使用 jQuery 的 Metadata 插件之类的东西。基本上,您可以在元素的 class="" 属性中存储数据,如下所示:

<div id="aaa" class="class1 class2 class3 { type: 'food', color: 'green' }"></div>

然后在javascript中:

alert($('#aaa').metadata().color) // "green"

其他工具包使用 title 或 rel 属性来存储数据。虽然这对验证更友好,但它可能比使用 AnthonyWJones 的仅使用非标准属性的答案更好,也可能不会更好。它会“破坏”验证,但是根据Dojo的说法,自定义属性是完全有效的 HTML,即使它们没有针对 DTD 进行验证。

所以不 - 没有一个被广泛接受的特定属性可以转储所有数据。所有现有属性都用于特定用途。但是您可以 1) 创建自己的属性,或 2) 选择现有标签以用于您的目的重复使用。只是想指出另一种选择。

于 2011-05-13T21:48:49.057 回答
0

查看 www.htmlref.com 或 W3C 以了解使用的属性。

除了您可以添加自己的内容之外,它们将呈现并且可以通过代码访问,例如在 C# 中,您可以访问控件属性集合。

Control.Attributes["MyCustomAttribute"] = "Hello World";

于 2009-09-16T07:42:35.983 回答
0

relrev属性,它们在具有href-attribute 的元素中起作用。它们具有语义含义,但经常被用作存储附加信息的属性

于 2009-09-16T07:54:50.877 回答