4

是否有任何无意义的 HTML 标签来携带额外的元数据,例如指定块/区域的 JavaScript 属性?喜欢:

<div class="item">
   <meaninglesselement data-id="123">
   <meaninglesselement data-type="sometype">
   <meaninglesselement data-validate="true">

   ...
</div>

我知道我可以将data-*属性移动到,div class="item"但我想要一个干净代码的解决方案,即使会有很多参数。

4

2 回答 2

12

如果整个文档的元数据可能对访问者或机器人有用,则应使用metaelement。您只能使用已定义注册的name(但您可以在 wiki 中注册新值)。

对于只需要脚本等的元数据,您可以在现有元素(例如)上使用data-*属性body,或者您可以使用script元素

script元素允许作者在他们的文档中包含动态脚本和数据块。该元素不代表用户的内容

[…]

用于包含数据块时(相对于脚本),数据必须内嵌,数据的格式必须使用type属性给出,src属性不能指定,script元素的内容必须符合要求为使用的格式定义。

您可以将此元素放置在head或 文档正文中,其中也可以使用短语内容(如)。span

有一个用作数据块(而不是脚本)的信息示例:

 <script type="text/x-game-map">
 ........U.........e
 o............A....e
 .....A.....AAA....e
 .A..AAA...AAAAA...e
 </script>

因此,您可以使用 HTML 或 JSON 或任何您需要的格式。

如果您想使用 HTML,它可能 (***) 看起来像:

<div class="item">
  <script type="text/html">
    <div data-id="123"></div>
    <div data-foo="bar"></div>
    <div>foobar</div>
  </script>
</div>

***(我不确定它是否必须是“完整”的符合 HTML 文档,或者是否也允许像我的示例中那样使用“片段”)

于 2013-01-20T19:23:21.357 回答
9

数据适用于div,属性应该在div上。如果你想用每行一个项目来格式化你的代码,那么你可以。

<div class="item"
     data-id="123"
     data-type="sometype"
     data-validate="true">

没有设计用于存储文档正文中的元数据的元素。

于 2013-01-20T19:16:38.640 回答