不使用自定义标记属性的一些充分理由<a my_att="..."></a>

时间:2011-02-28 15:52:51

标签: javascript custom-attributes

我这样做主要是为了将数据存储在标签内部,因为我从php中回显它,然后使用jQuery来$(..)。attr('my_att')来检索它。

到目前为止它没有引起任何问题,但是有充分的理由(除了无效之外)为什么我们不应该这样做?

3 个答案:

答案 0 :(得分:3)

因为您可以使用有效的自定义属性:

<div data-customer-id="3" class="customer"> [...] </div>

如果您使用data-作为前缀,则它们是有效的HTML。不仅仅是编写自己的属性的原因是他们可以在将来结束继承意义。显然,在某些情况下这不太可能(例如“customer-name”),但使用前缀是safter。

另一个好处是你非常清楚自己的意图;当您尝试标记与特定输入字段关联的模型时,另一位开发人员不会认为您打算写kind="text"而不是type="text"

答案 1 :(得分:3)

我更喜欢做HTML5 data attributes这样的事情。

如果您的浏览器本身不支持数据属性,那么您可以使用jQuery.data()来获取属性。

例如:

<a href="#" id="MyLink" data-address="1600 Pennsylvania Ave, Washington, DC">
  My Address
</a>

然后我可以$('#MyLink').data('address')来获取价值。

答案 2 :(得分:0)

我认为主要有两个原因可以避免使用自定义属性:

1°如果浏览器对HTML标准非常严格,他可以拒绝显示不符合DTD的页面,或者更糟糕的是,尝试显示页面时崩溃。

2°浏览器可以选择从元素中删除未知属性。

当然,实际上,没有浏览器可以做这些事情中的任何一个,但是谁能说明未来新的实现会做什么?

标准的制定是出于某种原因,遵循这些标准始终是个好主意。特别是当HTML5允许您轻松创建自定义属性时。