如何获取除HTML之外的整个文档的文本内容?

时间:2017-01-24 20:25:49

标签: javascript jquery

所以我试图从当前页面获取所有文本。我正在使用$('body').text(),但它似乎并不像我希望的那样工作。当我这样做时,它也会返回一些javascript。我只希望搜索可见文本。反正有吗?

1 个答案:

答案 0 :(得分:1)

以下内容可以满足您的需求。但是,有一些警告。



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>
&#13;
&#13;
&#13;

看到*?这意味着每个元素都是body的后代。因此,:not()会应用于网页上的每个元素,并检查它是scriptstyle还是noscript。如果你很幸运,你的浏览器本身支持这个,所以它使用一些相对较快的代码来实现这一点,因为根据你的页面大小和其中的元素数量,可能需要相当长的时间来制作检查。