用于计算输入到输入框中的单词的JavaScript代码

时间:2016-03-18 20:04:43

标签: javascript

我应该编写一个函数来计算文本区域中的单词,但我的代码只计算第一个单词,你可以在这里看到代码:

link to my code

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;
}

3 个答案:

答案 0 :(得分:1)

为什么不拆分textarea值并获得arraylength的空字符:
检查下面的代码段

&#13;
&#13;
  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;
&#13;
&#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>