我应该编写一个函数来计算文本区域中的单词,但我的代码只计算第一个单词,你可以在这里看到代码:
var myTextareaElement = document.getElementById("myWordsToCount");
myTextareaElement.onkeyup = function wordcount(wor){
var myTextareaElement =document.getElementById("myWordsToCount").value;
var haveByNow = 0;
for (var i = 0; i < wordcount.length; i++)
if (wor[i] === " ") {
haveByNow = +1;
}
haveByNow += 1;
document.getElementById("wordcount").innerHTML = haveByNow;
}
答案 0 :(得分:1)
为什么不拆分textarea值并获得arraylength的空字符:
检查下面的代码段
var outputTracks = [];
outputTracks = outputTracks.concat(outputAudioStream.getTracks());
outputTracks = outputTracks.concat(outputVideoStream.getTracks());
outputMediaStream = new MediaStream(outputTracks);
&#13;
var myTextareaElement = document.getElementById("myWordsToCount");
myTextareaElement.onkeyup = function wordcount(wor) {
var myText = this.value.trim();
var wordsArray = myText.split(/\s+/g);
var words = wordsArray.length;
document.getElementById("wordcount").innerHTML = words;
};
&#13;
答案 1 :(得分:0)
这一行:
haveByNow = +1;
......与以下内容不同:
haveByNow += 1;
前者将haveByNow
设置为1
,其他增量。这就是为什么每次都会看到1
的结果。
另一个问题是for
循环中的这个表达式:
wordcount.length
wordcount
是您的函数的名称,wordcount.length
是该函数的参数数量,这不是您想要的。 myTextareaElement
,这是输入的值是你想得到的长度:
for (var i = 0; i < myTextareaElement.length; i++) ...
虽然@itsgoingdown指出,但有更好的方法来计算字数。
答案 2 :(得分:0)
您有一些拼写错误和错误,请参阅工作代码:
var myTextareaElement = document.getElementById("myWordsToCount");
myTextareaElement.onkeyup = function wordcount(wor){
var words = myTextareaElement.value;
var haveByNow = 1;
for (var i = 0; i < words.length; i++) {
if (words[i] == " ") {
haveByNow += 1;
}
}
document.getElementById("wordcount").innerHTML = haveByNow;
}
<textarea id="myWordsToCount" rows="5" cols="60"></textarea><br>
The wordcount is: <span id="wordcount"></span><br>