HAML丢失了我的标签

时间:2012-06-08 13:32:52

标签: html ruby haml handlebars.js

我有以下HAML

.x-row-tpl
  %tds {{#parent}}{{name}}{{/parent}}
  %td {{#parent}}{{name}}{{/parent}}
  %p {{#parent}}{{name}}{{/parent}}

它被渲染成HTML(我的意思是我在浏览器中得到的):

<div class="x-row-tpl">
  <tds>{{#parent}}{{name}}{{/parent}}</tds>
  {{#parent}}{{name}}{{/parent}}
  <p>{{#parent}}{{name}}{{/parent}}</p>
</div>

为什么HAML会在渲染时跳过<td>标记?

我甚至尝试将其包装到:erb中,但它并没有帮助。尝试了不同的标记名称,甚至是无效的标记(如<tds>),一切正常,但<td>除外。

1 个答案:

答案 0 :(得分:0)

由于以下原因,您的HTML无效:

  1. 您的代码名为<tds>,无效。它应该是<td>

  2. <td>代码唯一有效的父元素是<tr>

  3. 当有效标记元素位于无效位置时,浏览器可以自由删除或移动标记。当使用无效的标签名称时,浏览器可以随心所欲地进行任何操作 - 在大多数现代浏览器中,AFAIK只会被视为<div>

    始终确保最终的HTML传递W3C's HTML Validator。如果没有,您将会出现意外行为。