其它信息HTML元素属性
你可能想切换到HTML5和使用custom data attributes。
在HTML5推出之前,我一直使用_something作为自定义数据的属性名称,假设真正的属性不太可能以下划线开头。这是一个“可以接受”的假设,还是我会更好地把所有东西都转换成数据 - 是什么? – 2010-11-22 03:53:27
我建议使用'data- *',因为它是有效的HTML讨价还价。 – 2010-11-22 03:54:30
我会用这个,谢谢。我使用jQuery的'attr'函数,因此不需要原生的JS实现。 – 2010-11-22 04:04:10
在HTML5中,你可以定义自己的属性data-
存储任何你想要的。
如果您愿意,您可以自己设定属性。将数据放入属性中可能不是一个好主意,如果通过规范它应该有一些有意义的内容。
在HTML 5 spec,您可以使用data-*
属性;他们保证不对浏览器做任何事情,他们也可以在旧版浏览器中工作。
在JavaScript中,你可以用通常属性特性访问:
var value = elem.getAttribute("data-foo")
elem.setAttribute("data-foo", "value")
elem.removeAttribute("data-foo")
有了新的浏览器可以使用elem.dataset
,但你可能不希望这样做,因为旧的浏览器不支持它。
var value = elem.dataset.foo;
elem.dataset.foo = "value";
elem.dataset.foo = null;
HTML5现在supports存储数据 - *属性的信息,但多数民众赞成HTML5,大家都还没有。因此,一个真实的场景......
如果您不担心跨后背上坚持,你可以简单的数据对象作为一个JSON集合VAR地图和拉基于特定键的对象出来。但这是一个广泛的方法 - 关于总体目标的更多信息会改善反馈。
取决于您希望存储什么样的信息以及您计划如何访问它。我成功使用了id
和class
属性来存储和访问数据库ID(例如,甚至是某些数据库表的引用),然后使用jQuery检索它们以执行一些AJAX请求。
如果你不使用HTML5,我建议不要使用自己的自定义属性。否则,就像在我之前建议的人一样,查看data-
前缀的属性。
data- *是要走的路,如果你可以使用HTML5。您可以轻松地访问他们的JavaScript也与elem.data。*
否则,自定义属性可能比搞砸了的页面的语义更好。
这是危险的东西。 Rel属性其实很漂亮,也就是说Google bot在其他方面使用它。 建议您为自己的目的使用定义的HTML属性。 – 2010-11-22 03:49:35
@Chris:所有这些东西都是由一段JavaScript生成的,没有任何人应该阅读。 – 2010-11-22 03:51:31
正是这一点! – 2010-11-22 04:09:31