我有一个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。
答案 0 :(得分:6)
<div>
内的<p>
无效HTML。
http://www.w3.org/TR/html401/struct/text.html#h-9.3.1
看来DOM正在尝试通过打开/关闭无效的<p>
标记为您解决此问题。
答案 1 :(得分:1)
根据HTML specification,<p>
只能包含Phrasing elements个<div>
。
jQuery(或实际上,浏览器)为您做的是将HTML打破为有效的HTML。