如何获取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中所有文本节点? 的全部内容, 来源链接: utcz.com/a/69825.html