使用自定义数据属性会产生浏览器兼容性问

Moh*_*mad 10 html custom-attributes custom-data-attribute

我必须在自定义数据标签或ID之间进行选择.我想选择自定义数据标记,但我想确保它们不会导致当今最广泛使用的浏览器出现浏览器兼容性问题.

我正在使用jQuery 1.6,我的特定场景涉及我需要为几个动作引用commentId的情况.

<div data-comment-id="comment-1" id="comment-1">
   <a class="foo"></a>
</div>
Run Code Online (Sandbox Code Playgroud)

在jQueryin中提取数据标签更容易: $('foo').data('commentId');

从id中提取子字符串似乎有点复杂,并且可能由于某种原因而中断: <a id="comment-1"

这两种方法都有任何彻底的优点或致命缺陷吗?

col*_*sar 6

我建议支持数据属性,原因如下:

  • ID需要在文档范围内是唯一的.因此,它们在可以携带的语义上受到限制
  • 每个元素可以有多个数据属性

在你的情况下可能不太相关:

  • 改变id可能会破坏idrefs

(但是,我不确定我是否完全理解你的规范,因为在jquery中提取元素id与获取数据属性一样简单:) $('.foo').attr('id');.

您可能对此Web浏览器兼容性网站感兴趣 .

如果xhtml对你来说是一个问题,你可能也对如何在xhtml中使用自定义数据属性感兴趣:请参阅此处讨论SO以及此处使用命名空间的xhtml兼容方法.

希望有所帮助,

最好的问候,carsten