其它信息HTML元素属性

问题描述:

我一直在使用rel存放一些非HTML信息,还有什么其他的属性是不常用的,我可以利用存储信息?其它信息HTML元素属性

+1

这是危险的东西。 Rel属性其实很漂亮,也就是说Google bot在其他方面使用它。 建议您为自己的目的使用定义的HTML属性。 – 2010-11-22 03:49:35

+0

@Chris:所有这些东西都是由一段JavaScript生成的,没有任何人应该阅读。 – 2010-11-22 03:51:31

+0

正是这一点! – 2010-11-22 04:09:31

你可能想切换到HTML5和使用custom data attributes

+0

在HTML5推出之前,我一直使用_something作为自定义数据的属性名称,假设真正的属性不太可能以下划线开头。这是一个“可以接受”的假设,还是我会更好地把所有东西都转换成数据 - 是什么? – 2010-11-22 03:53:27

+0

我建议使用'data- *',因为它是有效的HTML讨价还价。 – 2010-11-22 03:54:30

+0

我会用这个,谢谢。我使用jQuery的'attr'函数,因此不需要原生的JS实现。 – 2010-11-22 04:04:10

帮助?向下滚动到相对部分:

http://diveintohtml5.ep.io/semantics.html

在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地图和拉基于特定键的对象出来。但这是一个广泛的方法 - 关于总体目标的更多信息会改善反馈。

取决于您希望存储什么样的信息以及您计划如何访问它。我成功使用了idclass属性来存储和访问数据库ID(例如,甚至是某些数据库表的引用),然后使用jQuery检索它们以执行一些AJAX请求。

如果你不使用HTML5,我建议不要使用自己的自定义属性。否则,就像在我之前建议的人一样,查看data-前缀的属性。

data- *是要走的路,如果你可以使用HTML5。您可以轻松地访问他们的JavaScript也与elem.data。*

否则,自定义属性可能比搞砸了的页面的语义更好。