是否可以添加自定义Html属性?

Don*_* V. 22 html css jquery

如果有一行数据被更改,我有一个我想要标记的网站.如果在该行中更改了某些内容,我会使用自定义属性标记它.

<tr>
  <td isDirty="true">
     ....row data
  <td>
</tr>
Run Code Online (Sandbox Code Playgroud)

这适用于jQuery,它不会为我的页面添加太多代码.

但这是否真的是做这样的事情的正确方法,有什么缺点?

我想另一种做法就是这样,但似乎过度杀戮.

<tr>
  <td>
     ....row data
     <input id="isDirty" type="hidden" value="true" />
  <td>
</tr>
Run Code Online (Sandbox Code Playgroud)

tan*_*hos 26

为什么不使用jQuery数据功能?

你的例子是(我不知道选择合适的td的条件):

$("tr td").data("isDirty", true);
Run Code Online (Sandbox Code Playgroud)

看看文档

  • 作为额外的好处,这将获取名为"data-"的(HTML5)属性,因此您可以添加名为"data-isDirty"的属性服务器端而不是"isDirty".它将是有效的HTML5,虽然它不会在HTML4中验证,但它仍然可以跨浏览器工作. (4认同)
  • 这可能会在服务器端生成中变得丑陋,这是将这样的属性添加到html中唯一有意义的点. (2认同)

小智 21

从技术上讲,你应该使用class属性.标签可以有多个类,因此它不应该影响任何东西

<td class="isDirty otherclass">
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢使用这个类,但我觉得class属性就像是所有东西的倾倒场.如果在路上我最终创建一个名为isDirty的css样式类怎么办?如果我只是添加自定义属性,那有什么缺点? (3认同)
  • 当然,但是为了后来的读者的利益,对SO的一般情况负有责任 (2认同)

End*_*ssa 9

HTML 5支持前缀为"data-"的自定义属性.所以,我会用它来向前兼容.

至于早期版本,我认为它不会验证,但我不担心.我听说有些浏览器可能会忽略这些标签.所以,一定要全面测试一下.