我有以下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>
除外。
答案 0 :(得分:0)
由于以下原因,您的HTML无效:
您的代码名为<tds>
,无效。它应该是<td>
。
<td>
代码唯一有效的父元素是<tr>
。
当有效标记元素位于无效位置时,浏览器可以自由删除或移动标记。当使用无效的标签名称时,浏览器可以随心所欲地进行任何操作 - 在大多数现代浏览器中,AFAIK只会被视为<div>
。
始终确保最终的HTML传递W3C's HTML Validator。如果没有,您将会出现意外行为。