HTML5规范定义了如何使用data- *前缀设置自定义属性,如:
<div data-attr="somedata"></div>
但是如果我们写的话会有什么不同:
<div attr="somedata"></div>
我实际上更喜欢第二种方式,因为它更短。
我可以使用getAttribute()
方法访问这两个属性。
那么不使用data- *前缀是错误的吗?我只在chrome和IE11上测试过,所以也许还有其他浏览器需要担心?
HTML5将data-*
属性定义为有效,而其他自定义属性则不定义。所以呢?
data-*
属性,但它不是通灵的。它无法判断哪些其他新属性是计划的一部分。data-*
属性免于未来的实施。data-*
属性中收集它们来与dataset
属性协作。如果您构成另一个属性,则不会包含该属性。如果上述各点都不重要,那么,无论如何,请使用您喜欢的任何属性名称。至于上面的最后一点,你总是可以使用JavaScript的*Attribute
函数访问你自己的任意属性,这些函数可以很好地适用于任何属性,无论其有效性如何。
说到JavaScript,JavaScript没有HTML有效性的概念,您可以使用JavaScript来分配您喜欢的任何属性名称,而不必担心HTML验证器警察会敲门。但是,您仍然面临与其他库或未来实现竞争的风险。