我想计算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");
答案 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)
答案 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");