3

我有一个 html 字符串。因为我需要对其进行一些操作,所以我需要使用 jquery。但是我有一个问题,即 jQuery 向字符串添加了额外的标签。我怎样才能避免这种情况。

    var html = marked(input); //returns an html string
    console.log(html); //prints: <p>test<div>Type</div></p>
    var tree = $("<div>" + html + "</div>");
    //generate html out of the jquery html
    html = tree.html();
    console.log(html); // now it is: <p>test</p><div>Type</div><p></p>

我已经用 jQuery 2.0.3 和 firefox 和 chrome 的浏览器对其进行了测试。

4

2 回答 2

6

a<div>中的A<p>不是有效的 HTML。

http://www.w3.org/TR/html401/struct/text.html#h-9.3.1

看来 DOM 正试图通过打开/关闭无效<p>标签来为您修复它。

于 2013-10-16T19:15:12.650 回答
2

A <p>,根据HTML 规范,只能包含Phrasing 元素,这些元素都不是<div>.

jQuery(或者实际上是浏览器)为您所做的就是将损坏的 HTML 转换为有效的 HTML。

于 2013-10-16T19:17:33.597 回答