0

给定

var html = "<html><body><p>Hello, World!</p><p>Ciao!</p></body></html>";

我想提取body标签 ( <p>Hello, World!</p><p>Ciao!</p>) 的内部 HTML。

.find()找到bodyDOM 节点

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

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

var text = body.text(); //  returns ""
var var = body.var(); // returns undefined

如何获取<body>标签内部 HTML 的字符串表示形式?

4

4 回答 4

1

您可以使用子字符串,获取的索引和索引,并用里面的内容创建一个子字符串。

var bot = html.indexOf("<body>");
var top= html.indexOf("</body>");
var body=html.substring(bot,top);
于 2013-02-12T04:23:56.123 回答
0

当您将html字符串body包装在$().

因此,您可以这样做:

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

演示http://jsfiddle.net/LxdrM/

于 2013-02-12T04:25:44.867 回答
0

你可以试试body[0].innerHTML()

于 2013-02-12T04:25:54.813 回答
0

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

工作小提琴

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

HTML

<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>
于 2013-02-12T04:49:30.587 回答