我必须在自定义数据标签或ids之间进行选择.我想选择自定义数据标签,但我想确保它们不会导致当今最广泛使用的浏览器的浏览器兼容性问题.
我使用的是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” 任何一种方法都有无数的优点还是致命的缺陷?
解决方法
我建议赞成数据属性,原因如下:
> ids需要是唯一的文档.
因此它们在他们可以携带的语义上是有限的
>每个元素可以有多个数据属性
在你的情况下可能不那么相关:
>更改ID可能会破坏idrefs
(但是,我不知道我是否完全理解您的规范,因为在获取数据属性$(‘.foo’).attr(‘id’);)中提取jquery中的元素id是微不足道的.
你可能对this browser compatibility site for web technologies感兴趣.
如果xhtml是一个问题,您可能还会对如何在xhtml中使用自定义数据属性感兴趣:有关使用命名空间的xhtml兼容方法,请参阅here有关SO和here的讨论.
希望有所帮助,
最好的问候,carsten