鉴于
var html = "<html><body><p>Hello, World!</p><p>Ciao!</p></body></html>";
我想提取body
代码(<p>Hello, World!</p><p>Ciao!</p>
)的内部HTML。
.find()
找到body
DOM节点
var body = $(html).find("body");
但我找不到获取该节点的内部HTML的方法。我试过了:
var text = body.text(); // returns ""
var var = body.var(); // returns undefined
如何获取<body>
标记内部HTML的字符串表示形式?
答案 0 :(得分:1)
您可以使用substring,获取索引和索引,并使用内部的内容创建子字符串。
var bot = html.indexOf("<body>");
var top= html.indexOf("</body>");
var body=html.substring(bot,top);
答案 1 :(得分:0)
当你将字符串包装在html
中时,jQuery会删除body
和$()
个标签。
因此你可以这样做:
var str=$('<div>').append($(html)).html()
答案 2 :(得分:0)
您可以尝试body[0].innerHTML()
答案 3 :(得分:0)
当您想要显示字符串表示时,最好将html保存在div
元素(或body标记内的任何其他元素)中,而不是body
标记本身。对于字符串表示,请使用TextArea
,这也是SO正在使用的。
<强> Working fiddle 强>
$(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>