如何获取HTML中所有文本节点?

比如以下body中

<body>

<div class="container">

asdf

<div>

Lorem ipsum dolor sit

<p>!!!!</p>

nesciunt ipsa cumque!

</div>

<p>test3</p>

</div>

</body>

想获取一个数组

['asdf', 'Lorem ipsum dolor sit', '!!!!', 'nesciunt ipsa cumque!', 'test3']

回答

const res = document.querySelector('*').innerText.split('\n');

console.log(res);

res就是得到的结果了

难道没人提到xpath语法?我觉得也相当简单啊(我用xmllint在终端演示的):

$ echo '<body>

<div class="container">

asdf

<div>

Lorem ipsum dolor sit

<p>!!!!</p>

nesciunt ipsa cumque!

</div>

<p>test3</p>

</div>

</body>' | xmllint --html --xpath '//text()' -

# 输出结果(未trim)

asdf

Lorem ipsum dolor sit

!!!!

nesciunt ipsa cumque!

test3

如果是获取单纯文本:document.body.innerText

如果是获取节点,那得用babel转语法树

前两天刚好在这篇文章写过?
https://segmentfault.com/a/11...

如何获取HTML中所有文本节点?

以上是 如何获取HTML中所有文本节点? 的全部内容, 来源链接: utcz.com/a/69825.html

回到顶部