jQuery:将attr与自定义属性一起使用

Mar*_*ark 5 jquery

现在我正在做各种无效的事情,比如:

<span time="50" distance="60"></span>
Run Code Online (Sandbox Code Playgroud)

然后抓住这些信息:

var time = $('span').attr('time');
var distance = $('span').attr('distance');
Run Code Online (Sandbox Code Playgroud)

然后用jS/jQuery中的时间和距离做各种事情.

对我来说,这感觉不对.这是语义上的,但我真的不在乎(实际的数据不是时间和距离,而是一些非常无价值和页面特定的东西,没有SE感兴趣的东西).但还有其他一些原因导致这是一个坏主意吗?

我知道有一个元数据插件,它以更"官方"的方式执行类似的操作,我考虑过使用它.但是这个.attr的东西适合我的需要,我没有看到使用插件的任何令人信服的理由.

所以基本上,这是一个体面的模式,如果没有,为什么不,我应该对元数据插件感兴趣.

谢谢.

Ric*_*haw 7

HTML5包括支持在向后兼容的属性中嵌入数据.这是一个例子:

<li class="user" data-name="John Resig" data-city="Boston"
     data-lang="js" data-food="Bacon">
  <b>John says:</b> <span>Hello, how are you?</span>
</li>
Run Code Online (Sandbox Code Playgroud)

Useragents可能会将.dataset的想法实现为javascript,这很容易让你单独提取数据位,但现在只需改变你的类来包含数据就足够了.这将验证为HTML5.

对我而言,这比元数据jquery的想法要好得多 - 这对我来说似乎是愚蠢的.

有关详细信息,请参见此处

  • 不,但这已经有效,至少提供了一种可行的标准方法.我不是说我同意这是最好的解决方案,但它是人们可以使用的,将来它将是有效的. (2认同)