我有一个HTML页面,我只想要文本(所有文本节点)。
<span>hello <strong>sir</strong></span>
hello sir
答案 0 :(得分:25)
假设您只想要body
元素的孩子......
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> Example</title>
</head>
<body>
a <div>b<span>c</span></div>
</body></html>
var body = document.body;
var textContent = body.textContent || body.innerText;
console.log(textContent); // a bc
您需要检查textContent
,因为我们的好朋友IE使用的是innerText
。
如果您拥有jQuery等库,即$('body').text()
,则会更容易。
此外,它可以在服务器端实现,例如PHP中的strip_tags()
。但是,如果您只想要body
元素,则需要使用DOM解析器(例如DOMDocument)向下钻取它。
答案 1 :(得分:-2)
假设您正在尝试获取JS所在页面的html
var elems = document.getElementsByTagName('*');
var result = '';
for(var k in elems)
result += elems[k].innerHTML || '';
alert(result);
答案 2 :(得分:-3)
我不确定我是否完全理解,但如果您想要当前页面的标记,那么我猜您可以针对当前页面发出Ajax请求并使用它:
$.get("/current-page-name", function(data) {
console.log(data);
});