Jquery 从HTML字符串中提取DOM节点,结果为HTML字符串

Jquery 从HTML字符串中提取DOM节点,结果为HTML字符串,jquery,Jquery,给定 但是我找不到获取该节点内部HTML的方法。我试过: var body = $(html).find("body"); 如何获取标记内部HTML的字符串表示形式?您可以使用子字符串,获取的索引和的索引,并使用其中的内容生成子字符串 var text = body.text(); // returns "" var var = body.var(); // returns undefined var bot=html.indexOf(“”); var top=html.indexOf(“

给定

但是我找不到获取该节点内部HTML的方法。我试过:

var body = $(html).find("body");

如何获取
标记内部HTML的字符串表示形式?

您可以使用子字符串,获取的索引和的索引,并使用其中的内容生成子字符串

var text = body.text(); //  returns ""
var var = body.var(); // returns undefined
var bot=html.indexOf(“”);
var top=html.indexOf(“”);
var body=html.substring(bot,top);

jQuery将在您将字符串包装在
$()
中时剥离
html
body
标记

因此,您可以这样做:

var bot = html.indexOf("<body>");
var top= html.indexOf("</body>");
var body=html.substring(bot,top);
var str=$('').append($(html)).html()

演示

您可以尝试
body[0]。innerHTML()

当您想要显示字符串表示时,最好将html保存在
div
元素(或body标记内的任何其他元素)中,而不是
body
标记本身。对于字符串表示,使用
TextArea
,这也是SO所使用的

var str=$('<div>').append($(html)).html()
HTML

$(function(){
   var body = $('html').find('div'); 
   var text = body.html(); 
   $("#textArea").val(text);
});

你好,世界

再见


$(html).find(“body”).html()
?@aroth:这也是
未定义的
。那么我相信这就是为什么它不起作用的解释:。这里有一个例子;在Chrome中,除两个
标记外,所有内容都被剥离。正确,只是执行此操作的似乎不是jQuery。请参见var body=$(html).find(“body”);将返回一个元素数组。使用正文[0]获取元素并对其调用innerHTML函数。不幸的是,我无法控制HTML片段。它没有一个包含主体内其余标记的单个标记。
$(function(){
   var body = $('html').find('div'); 
   var text = body.html(); 
   $("#textArea").val(text);
});
<html>
     <body>
        <div><p>Hello, World!</p>
             <p>Ciao!</p>
        </div>
        <textarea id="textArea" name="post-text" cols="92" rows="15" tabindex="101">
        </textarea>
     </body>    
 </html>