如何通过JavaScript计算HTML正文中的选定单词

时间:2016-11-25 19:18:41

标签: javascript jquery html

我想计算HTML正文中特定单词/ pharse的出现次数。例如在段落中。特别之处在于我想通过匹配一个变量来计数 - 这是指字符串,而不是字符串本身。

以下代码仅返回零。

也许它与array_values有关 - >就像它没有把它看成一个数组。我是个乞丐,所以每个提示都很重要。

var array_values = document.getElementsByClassName('a'); // <p class="a"> A paragraph that contains some text.

var chosenWord = document.getElementById("input").value; // a word that i would like to count (how many times it occours in paragraph)

var count = 0;
for (var i = 0; i < array_values.length; i++) {
    if (array_values[i] == chosenWord) 
        count++;
}

alert("The word " + chosenWord + "occours " + count + "times");

3 个答案:

答案 0 :(得分:1)

代码似乎很好,首先,添加:

var totalIteration = 0;
var count = 0;
for (var i = 0; i < array_values.length; i++) {
    totalIteration ++;
    if (array_values[i] == chosenWord) 
        count++;
}

alert("The word " + chosenWord + "occours " + count + "times in a loop that looped " + totalIteration + " times);

它会帮助你知道循环循环的次数,我认为这是有问题的来源:

var array_values = document.getElementsByClassName('a');
你怎么看?你不能评论...如果你需要沟通,请回答你自己的问题,我会在评论中将其转移

答案 1 :(得分:1)

看看这个:

Convert textarea value to javascript array (separated by new lines)

不要拆分问题中的内容,而是分开(“”)

答案 2 :(得分:1)

一个小小的改变,它的工作原理!更改是在第一个变量的声明中 - 必须添加innerHTML - 如果没有它我们创建一个[HTML OBJECT](我想)不能用于此目的。感谢Antoine创建了trim和split以及Array。

var lines = document.getElementById("text").innerHTML.trim().split(" "); // A paragraph that contains some text 

var chosenWord = document.getElementById("input").value; // a word that i would like to count (how many times it occours in paragraph)

var texts = [];
    for (var i=0; i < lines.length; i++) {
    //only push this line if it contains a non whitespace character.
      if (/\S/.test(lines[i])) {
          texts.push($.trim(lines[i]));
      }
    }

alert(JSON.stringify(texts)); // the block is creating an array of words from selected DIV. Alert is just to show you an array.


var count = 0;
for (var i = 0; i < texts.length; i++) {
    if texts[i] == chosenWord) 
        count++;
}

alert("The word " + chosenWord + "occours " + count + "times");