10

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

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

<div data-comment-id="comment-1" id="comment-1">
   <a class="foo"></a>
</div>

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

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

这两种方法是否有任何普遍的优点或致命的缺陷?

4

2 回答 2

6

出于以下原因,我建议支持数据属性:

  • id 需要在整个文档范围内是唯一的。因此,它们可以承载的语义受到限制
  • 每个元素可以有多个数据属性

并且可能与您的情况不太相关:

  • 更改 id 可能会破坏 idref

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

您可能对Caniuse.com感兴趣,这是一个 Web 技术的浏览器兼容性站点。

如果 XHTML 对您来说是个问题,您可能还对如何在 XHTML 中使用自定义数据属性感兴趣:有关 SO 的讨论请参见此处,有关使用名称空间的 XHTML 兼容方法请参见此处。

于 2011-06-10T09:45:20.390 回答
2

这家伙说数据属性在 IE6 上工作。

于 2011-06-09T20:11:12.270 回答