在旧版浏览器中使用HTML5的"data-*"属性会有问题吗?

44
我想给一些HTML节点关联自定义数据。我打算用新的HTML5风格'data-*'属性来实现,例如: <tr class="foo" data-typeid="7">…,然后通过读取 $(node).attr("data-typeid") 的值来选择这个HTML节点并进行显示/隐藏等操作。
然而,这个网页需要在旧版本浏览器中运行。虽然我没有将data-*属性作为特殊属性使用,但我想知道旧版本浏览器是否会忽略、清除或使此属性无法访问,因为它不是有效的HTML4属性。

可能是重复的问题:HTML5自定义数据属性在IE6中是否“有效”? - James Lawruk
2个回答

54

实际上,它们在HTML4中并不是100%正确/有效的用法......但它们也不会造成问题,所以它们仍然是解决“我需要一个属性”问题的好方法。

如果有帮助的话,我在支持IE6时使用了这些方法,到目前为止还没有出现任何问题,我也记不起来单个SO问题报告过任何问题。


5
HTML5旨在尽可能与现有浏览器行为兼容。数据属性就像HTML5文档类型一样,是其中一个美好的地方,似乎可以毫不费力地实现这一点。 - Paul D. Waite
1
似乎在使用XHTML 1.0 Transitional文档类型和IE 8及以下版本时,无法使用jQuery的数据类型。 - codeadventurer

11

Internet Explorer和Microsoft增加了几个自定义属性,这些属性在HTML4中不是有效的。浏览器不会根据规范检查元素属性,如果您喜欢,可以将属性命名为roryscoolinfo="hello"(尽管您不应该这样做)。

Dojo Toolkit添加了其自定义的dojo*属性。

使用HTML5 doctype时,使用data-是可以接受的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接