计算HTML段落中的单词数量

时间:2015-10-10 17:11:36

标签: javascript

我有一个HTML文件,其中有几个段落具有相同的类'profile-value'。我想使用JavaScript创建一个字数,可以计算每个段落的所有单词。我已经给了这个去:

var profile_values = document.getElementsByClassName('profile-value');
var total_words = 0;
for (var i = 0; i > profile_values.length; i++) {
    total_words += profile_values[i].length;
};

然后使用innerHTML调用总数:

document.getElementById('word-count').innerHTML = total_words;

我已经看到迭代Nodelists是相当狡猾的,但我还尝试在尝试上面的代码之前将Nodelist转换为数组,再次无济于事。希望你们能对此有所了解吗?

5 个答案:

答案 0 :(得分:2)

这个怎么样? https://jsfiddle.net/rrex0gju/

function getWordCounts(nodeList) {
    var wordCount = 0;
    for ( var i = 0; i < nodeList.length; i++ ) {
        wordCount += nodeList[i].textContent.trim().split(' ').length;
    }
    return wordCount;
}

document.querySelector('span').textContent = getWordCounts(document.querySelectorAll('p'));

答案 1 :(得分:0)

使用字符串的split属性,然后获取length以获得字总数。

此处trim()函数用于从字符串中删除前导尾随空间。

var profile_values = document.getElementsByClassName('profile-value');
var total = 0;
for(var i = 0; i < profile_values.length; i += 1){
  total += profile_values[i].innerHTML.trim().split(" ").length
}
alert(total);
<p class="profile-value">    sdfsf dsfsf dsfs sdfds      </p>

答案 2 :(得分:0)

首先得到以下段落

var paras = document.getElementsByClassName('profile-value');

然后运行代码段以获取以下计数:

var count = 0;
for(var i=0; i<paras.length; i++){
 var content = paras[i].textContent;
 var words = content.match(/\S+/g);
 count += words? words.length : 0;
}
console.log('count = ', count);

答案 3 :(得分:0)

使用上述回复,我已将代码更改为:

var profile_values = document.getElementsByClassName('profile-value');
var total_words = 0;
 for (var i = 0; i < profile_values.length; i++) {
  total_words = total_words + profile_values[i].innerText.split("   ").length;

};

这似乎已经成功了。这对你们来说是否正确? 我想感谢你们的帮助!

答案 4 :(得分:0)

访问所有类 profile_value

var profile_values = document.querySelectorAll(".profile_value");

Profile_values现在是 HTML集合。浏览集合:

[].forEach.call(profile_values, function(paragraph) {});

内部功能拆分 内部文字数组 所有单词。数组的长度是最近段落的单词数:

var splitted = paragraph.innerText.split(" ");
var countWordsParagraph = splitted.length;

将countWordsParagraph添加到totalWordCount:

totalWordCount += countWordsParagraph;

达成:

var profile_values = document.querySelectorAll('.profile-value'); 
var totalWordCount = 0;
[].forEach.call(profile_values, function(paragraph) {
    var splitted = paragraph.innerText.split(" ");
    var countWordsParagraph = splitted.length;
    totalWordCount += countWordsParagraph;
});

Visible