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

时间:2011-04-13 09:50:57

标签: 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);

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

  

Object不支持此属性或方法。

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

5 个答案:

答案 0 :(得分:23)

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

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

要解决此问题,只需将messageLength声明为本地变量:

var messageLength = messageVal.length; //IE WON'T BREAK HERE

答案 1 :(得分:0)

尝试替换:

messageVal = $('#messageLabel textarea').val();

messageVal = $('#messageLabel textarea').text();

希望它有所帮助。

答案 2 :(得分:0)

我认为.change()在IE中遇到了一些问题。请将其删除,看看它是否正常工作。

也可以尝试使用.html()而不是.val()。

答案 3 :(得分:0)

看这里simple test。 textarea不支持价值财产。你可以通过文本属性获取它

答案 4 :(得分:0)

我有一个类似的错误,但是,这是因为我将JQuery库添加到母版页,并且在同一页的其他地方有一个重复的库声明。