如何从HTML文档中仅获取文本(无标记)?

Anu*_*sha 10 javascript parsing

我有一个HTML页面,我只想要文本(所有文本节点).

示例HTML

<span>hello <strong>sir</strong></span>
Run Code Online (Sandbox Code Playgroud)

期望的输出

hello sir
Run Code Online (Sandbox Code Playgroud)

ale*_*lex 25

假设你只想要body元素的孩子......

示例HTML

<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>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

var body = document.body;
var textContent = body.textContent || body.innerText;

console.log(textContent);  //   a bc
Run Code Online (Sandbox Code Playgroud)

你需要检查,textContent因为我们的好朋友IE使用innerText.

如果你有一个图书馆,如这是很容易的jQuery,即$('body').text().

此外,它可以在服务器端实现,例如strip_tags()在PHP中.但是,如果您只需要该body元素,则需要使用DOM解析器(如DOMDocument)向下钻取.


moe*_*moe -3

假设你正在尝试获取 JS 所在页面的 html

var elems = document.getElementsByTagName('*');
var result = '';
for(var k in elems)
    result += elems[k].innerHTML || '';
alert(result);
Run Code Online (Sandbox Code Playgroud)

  • `innerHTML` 包含 HTML 标签。 (5认同)