user3348643
user3348643

Reputation: 3

Word count issue with JS

I am very, very new at JS with no programming experience and I am struggling with creating a script that counts words in a text box. I have the following code and I can't get anything to populate:

    var myTextareaElement = document.getElementById("myWordsToCount");
    myTextareaElement.onkeyup = function(){
      var wordsCounted = myTextareaElement.value;
      var i = 0;
      var str = wordsCounted; 
      var words = str.split('');
      for (var i = words.length; i++) {if (words[i].length > 0; i++) { words[i]  };
} 

And for the Span Id in my HTML, I put the following:

<span id="wordsCounted"></span>

Any direction I where I am royally messing up would be great. I have tried it in JS fiddle and can't get it to populate.

Upvotes: 0

Views: 206

Answers (2)

Pablo Lozano
Pablo Lozano

Reputation: 10342

The split method needs a proper character, you can use an space " " or a regex to indicate any whitespace character: "My name is XXX".split(/\s+/) will show ["My", "name", "is", "XXX"]. If you just want the number of words you can do "My name is XXX".split(/\s+/).length, which will return 4.

Upvotes: 3

Chase W.
Chase W.

Reputation: 1413

Try this, this may do what you want. Instead of doing a for loop, just count how many words are there and display the length of the array.

var myTextareaElement = document.getElementById("myWordsToCount");
    myTextareaElement.onkeyup = function(){
      var wordsCounted = myTextareaElement.value;
      var i = 0;
      var str = wordsCounted; 
      var words = str.split('');
      if (words.length > 0){
          document.getElementById('wordsCounted').innerHTML = words.length;
      }
} 

Upvotes: 0

Related Questions