Javascript jQuery在解析html时添加了额外的标记
我有一个html字符串。因为我需要对它进行一些操作,所以我需要使用jquery。但是我有一个问题,jQuery向字符串添加了额外的标记。我怎样才能避免这种情况Javascript jQuery在解析html时添加了额外的标记,javascript,jquery,html,Javascript,Jquery,Html,我有一个html字符串。因为我需要对它进行一些操作,所以我需要使用jquery。但是我有一个问题,jQuery向字符串添加了额外的标记。我怎样才能避免这种情况 var html = marked(input); //returns an html string console.log(html); //prints: <p>test<div>Type</div></p> var tree = $("<div>"
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>
var html=marked(输入)//返回一个html字符串
log(html)//打印:testType
变量树=$(“”+html+“”);
//从jquery html生成html
html=tree.html();
console.log(html);//现在是:testType
我已经用jQuery2.0.3和firefox和chrome浏览器对它进行了测试。A
中的不是有效的HTML
似乎DOM正试图通过打开/关闭无效的标记来为您修复它。A,根据,只能包含其中任何一个
jQuery(或者实际上是浏览器)为您做的是将破坏的HTML转换为有效的HTML。p
元素不能有子元素div
。这是浏览器呈现html而不是jQuery的方式。在第一行,marked()
返回什么类型?文本/字符串?jQuery元素?DOM元素?它不会解决您的问题,但在类似3的情况下,使用$(“”)html(html);相反它更干净。浏览器通常会像这样“修复”HTML。这不是jQuery。