我可以在HTML标签上构建属性吗?

时间:2009-01-09 06:49:16

标签: javascript html

我是否可以在HTML标签中添加任何我想要的属性,这样我以后可以使用javascript检索它们的值?例如:

<a href="something.html" hastooltip="yes" tipcolour="yellow">...</a>

如果这不起作用,你会如何存储这样的任意信息?

修改:由于看起来构建HTML属性在技术上并不合适,我在这里将这个问题的第二部分改为自己的问题:How to store arbitrary data for some HTML tags

4 个答案:

答案 0 :(得分:46)

在HTML5中,是的。您只需在data-前添加前缀即可。请参阅the spec

当然,这意味着您应该使用HTML5 doctype(<!doctype html>),即使浏览器不关心。

答案 1 :(得分:24)

嗯,您始终可以创建自己的DTD以获取标签的新有效属性。浏览器不会打嗝,如果可以访问这些自定义属性,则应测试JavaScript。或者您可以使用HTML和CSS提供的现有工具。您可以使用多个类,如

<a href="..." class="class-one class-two has-tooltip">

对于颜色选择,我强烈建议您不要在HTML中使用硬编码的颜色名称,而是使用CSS来声明样式。使用class属性作为CSS声明的钩子,并选择 semantic 类名,例如

HTML:

<a href="..." class="has-tooltip common-tooltip">
<a href="..." class="has-tooltip long-tooltip">

CSS:

a.has-tooltip {
   colour: red;
}
a.common-tooltip {
   background: #ddd;
}
a.long-tooltip {
   background: #ebf;
}

在您的JavaScript代码中,您可以使用类似“long-tooltip”和“common-tooltip”而不是“yellow-tooltip”的类生成元素,因此在重新设计页面以获得绿色时,您不会自相矛盾工具提示。

答案 2 :(得分:4)

你可以。该页面不会通过验证,但大多数浏览器都会接受验证。

这几乎肯定是错误的做法。尝试使用class =“hasTooltip_yes tipcolour_yellow”

答案 3 :(得分:2)

根据您要存储的信息,您应该查看一些其他可用属性。这些看起来不是很好的候选人,但'rel'已被用于许多有趣的事情。