我这样做主要是为了将数据存储在标签内部,因为我从php中回显它,然后使用jQuery来$(..)。attr('my_att')来检索它。
到目前为止它没有引起任何问题,但是有充分的理由(除了无效之外)为什么我们不应该这样做?
答案 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允许您轻松创建自定义属性时。