我有一个从数据库返回持久化html模板的方法。
模板的格式为:
<div id="item_collection">
<div id="item_x">
<p id="item_x_headline"><h2>Some Headline</h2></p>
<p id="item_x_excerpt>Some text here</p>
</div>
<div id="item_x+1">
<p id="item_x+1_headline"><h1>Some Headline</h1></p>
<p id="item_x+1_excerpt>Some text here</p>
</div>
...and so on.
</div>
然而,在我运行以下内容之后:
alert(data); //check that the template is in order. It Is.
$('#template_area').html(data);
现在是Html:
<div id="item_collection">
<div id="item_x">
<p id="item_x_headline"></p> <!--Note The Lack of Nesting -->
<h2>Some Headline</h2>
<p id="item_x_excerpt>Some text here</p>
</div>
<div id="item_x+1">
<p id="item_x+1_headline"></p> <!--Note The Lack of Nesting -->
<h1>Some Headline</h1>
<p id="item_x+1_excerpt>Some text here</p>
</div>
...and so on.
</div>
那是什么给出的?是否有更好的方法来替换空的template_area的内容而不是.html()方法?
编辑:解决了。用div替换段落会产生正确的嵌套。 Jquery:自2006年以来写出比我更好的HTML。答案 0 :(得分:4)
<h2>
标记不是<p>
答案 1 :(得分:1)
来自http://www.w3.org/MarkUp/html-spec/html-spec_5.html
块结构元素包括 段落,列表和块引号。 他们必须不包含标题 元素,但它们可能包含短语 标记,在某些情况下,它们可能是 嵌套。
答案 2 :(得分:1)
我在<p>
标记中看到引用不匹配吗?
您在id =“中开始双引号,但未正确结束。
<p id=**"**item_x_excerpt>Some text here</p>