一段简单的代码
<div id="content">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>行号</title>
</head>
<body>
<p>测试页面</p>
</body>
</html>
</div>
我想用js提取出div里的html
<script charset="utf-8" type="text/javascript" >
var ob = document.getElementById("content");
console.log(ob.innerHTML);
</script>
console里面得到的结果是
<meta charset="UTF-8">
<title>行号</title>
<p>测试页面</p>
如何得到div里面完整的html呢?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>行号</title>
</head>
<body>
<p>测试页面</p>
</body>
</html>
因为你这里第一段的内容会被浏览器渲染,innerHTML 获取到的是浏览器渲染后的内容,但是因为你这里又包含了一些有特殊意义的标签,所以在实际渲染后,并不是你原本写的内容了。
如果你想要获取原始的内容,可以使用一些不会影响到的标签去放这些内容,比如把 script 标签的 type 设置为
text/html
现在,你不论是使用 innerHTML 还是 innerText 都可以获取到了。