所以我试图从当前页面获取所有文本。我正在使用$('body').text()
,但它似乎并不像我希望的那样工作。当我这样做时,它也会返回一些javascript。我只希望搜索可见文本。反正有吗?
答案 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;
看到*
?这意味着每个元素都是body
的后代。因此,:not()
会应用于网页上的每个元素,并检查它是script
,style
还是noscript
。如果你很幸运,你的浏览器本身支持这个,所以它使用一些相对较快的代码来实现这一点,因为根据你的页面大小和其中的元素数量,可能需要相当长的时间来制作检查。