所以我试图从当前页面获取所有文本。我正在使用 $('body').text()
但它似乎没有像我希望的那样工作。当我这样做时,它也会返回一些 javascript。我只想搜索可见文本。有办法做到这一点吗?
最佳答案
以下内容将为您提供您想要的。不过,也有一些注意事项。
console.log(jQuery('body *:not(script,style,noscript)').text());
<p>Needs me some text</p>
<style>
noscript { font-weight: bold; }
</style>
<noscript>
<div>whatever dude, I don't script anyway</div>
</noscript>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
看到那个*
了吗?这意味着作为 body
后代的每个元素。因此 :not()
应用于页面上的每个元素,检查它是否是 script
、style
或 noscript
.如果幸运的话,您的浏览器本身就支持此功能,因此它会使用一些相对快速的代码来完成此操作,因为根据页面的大小及其中元素的数量,可能需要相当长的时间来进行检查。
关于javascript - 如何获取除HTML之外的整个文档的文本内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41838362/