我希望通过JavaScript获取网站中的所有字符。
例如:
<p>aaa<B>a</B></p> -> 4
<div> ->16
<p>aaaa</p>
<p>aaaa</p>
<p>aaaa</p>
<p>aaaa</p>
</div>
........
<body>...</body> ->X
我尝试了类似$(document.body).text();
的东西,但它失败了。
答案 0 :(得分:0)
使用以下
$('body').text().length;
单词之间没有空格数
$('body').text().replace(/ +/g, "").length;
此外,这是一个坏主意,因为您的身体可能包含CSS和JS文件。这也包括在计数中。因此,使用div
id
围绕要计算的html。然后使用相应的div
计算特定id
的字符。
答案 1 :(得分:0)
$("body").text()
可能包含空格的正文的返回文本内容。您应该使用String.prototype.replace()
删除空格,并使用string.length
获取最终文本的长度。
$("body").text().replace(/\s+/g, "").length;
如果正文包含<script>
或<style>
标记,则应使用.filter()
过滤所选文字。
var length = $("body").contents().filter(function(){
return (this.localName != "script" && this.localName != "style") ? true : false;
}).text().replace(/\s+/g, "").length;
var length = $("body").contents().filter(function(){
return (this.localName != "script" && this.localName != "style") ? true : false;
}).text().replace(/\s+/g, "").length;
console.log(length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>aaa<B>a</B></p>
<div>
<p>aaaa</p>
<p>aaaa</p>
<p>aaaa</p>
<p>aaaa</p>
</div>
<script>//script</script>
<style>style</style>
&#13;