Jquery .html()函数从嵌套顺序返回html

时间:2010-05-11 19:53:50

标签: javascript jquery html

我有一个从数据库返回持久化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。

3 个答案:

答案 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>