IE错误,Object不支持此属性或方法

dub*_*elj 6 javascript jquery internet-explorer

 function charCount(){
  $.doTimeout('poll', 150, function(){
      messageVal = $('#messageLabel textarea').val();

      messageLength = messageVal.length; //IE BREAKS HERE

      $('#messageLength').html(messageLength + '/140')
      if(messageLength > 140){
          $('#messageLength').not('.inv').addClass('inv')
      }else{
          $('#messageLength.inv').removeClass('inv')
      }
      return false;
  })

}
$('#messageLabel textarea').change(charCount).keyup(charCount);
Run Code Online (Sandbox Code Playgroud)

在Internet Explorer 7.0中也可能出现以下错误(也可能是其他版本).

Object不支持此属性或方法.

有关导致此错误的原因的任何想法?

Sha*_*ard 23

当您不使用var关键字时,IE浏览器会messageLength在全局上下文中搜索并找到它...您拥有具有该ID的元素.

尝试为HTML元素指定编号失败.

要解决这个问题,只需将其声明messageLength为局部变量:

var messageLength = messageVal.length; //IE WON'T BREAK HERE
Run Code Online (Sandbox Code Playgroud)