使用非标准HTML属性被认为是不好的做法吗?

use*_*729 15 html javascript

我发现设置仲裁属性非常方便,例如:

<a stackoverflowId="123">...</a>
Run Code Online (Sandbox Code Playgroud)

在JavaScript中:

var soId = $selectofA.attr('stackoverflowId'); //jQuery
Run Code Online (Sandbox Code Playgroud)

这是一个好习惯吗?我从来没有遇到过这个问题.

Dan*_*llo 17

在HTML 5中,您可以使用以下data-*属性执行此操作:

<a id="myDiv" data-stackoverflowId="123">...</a>
Run Code Online (Sandbox Code Playgroud)

由于您使用的是jQuery,因此您可能还需要检查jQuery Metadata插件.它允许您在class属性中存储和解析JSON元数据,并且您的标记仍将验证.

您可以像这样插入元数据:

<a class="your_class {stackoverflowId: '123'}">...</a>
Run Code Online (Sandbox Code Playgroud)

并提取如下:

var data = $selectofA.metadata();
Run Code Online (Sandbox Code Playgroud)

  • 说真的,元数据方法不是侮辱伤害吗?现在我们有一个类的属性值,可能是CDATA,符合HTML和XHTML规范,但这与大多数浏览器所期望的类名或类名列表相差甚远.我不打赌我的cookie不会干扰类属性的正常行为. (5认同)
  • 如果您想与当前浏览器兼容,那么您所做的将适用于所有流行的浏览器......但是,使用有效标记可以帮助您保持与当前**和未来**浏览器的兼容性. (4认同)

Mat*_*chu 7

如果您使用data-属性,它至少是有效的HTML5.请参阅John Resig关于此主题的博客文章.

  • +1这是HTML5小组的承认,无论如何人们都会这样做,所以我们不妨将其标准化.它比人们当前大量重载类属性更好. (4认同)