.length属性未定义错误

时间:2018-04-23 07:10:52

标签: javascript

我必须创建一个函数来显示textarea中输入的字符数。我认为代码没问题,但我得到一个未定义的错误。你能告诉我为什么吗?感谢。



<html>

<head>
  <style>
    textarea {
      width: 200px;
      height: 130px
    }
  </style>
</head>

<body>
  <textarea onkeypress="caractere()" name="numar"></textarea>
  <p>Number of characters typed: <span></span></p>

  <script>
    function caractere() {
      document.getElementsByTagName('span')[0].innerHTML = document.getElementsByName('numar')[0].length;
    }
  </script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

  

document.getElementsByName( 'NUMAR')[0]。长度

getElementsByName返回HTMLCollection。当您选择[0]时,您将选择集合中的第一个元素。 HTML元素没有length属性。您需要获取元素的的长度:

<html>

<head>
  <style>
    textarea {
      width: 200px;
      height: 130px
    }
  </style>
</head>

<body>
  <textarea onkeypress="caractere()" name="numar"></textarea>
  <p>Number of characters typed: <span></span></p>

  <script>
    function caractere() {
      document.getElementsByTagName('span')[0].innerHTML = document.getElementsByName('numar')[0].value.length;
    }
  </script>

但是当你只选择一个元素时,使用一个返回集合的方法没什么意义。请改用querySelector:

document.querySelector('span').textContent =
  document.querySelector('[name="numar"]').value.length;