本帖最后由 tiantian1980 于 2009-10-29 21:46:31 编辑

解决方案 »

  1.   

    确定是这一行,我注释掉就没有了,我还加了img加了id,同样也不行
      

  2.   

    结尾加上分号(;),然后检测i_N0值是不是有问题,进一步检测document.getElementById("key"+i_N0)是否为空,层层排除呗
      

  3.   

    书写时还是规范点吧,不然错误出在哪里都不好找在ECMAScript标准中,分号是一个可选的符号,表示语句的结束。当解释器遇到换行符,且最后一个字符不是分号时,它就会检查该行是否和下一行的第一个字符形成有语义的语法单位,如果不能,则在其后自动插入一个分号,并执行该语句,否则将下一行的字符继续解析,直到能组成完整的语句。该机制在ECMAScript标准中被称为自动分号插入机制。
      尽管分号是可选的,但应意识到这是为了方便非专业用户而准备的,在用JavaScript开发专业的程序时,应该在每条语句的结束加上分号,这不仅可以保证程序有良好的结构而且能避免某些不可预知的错误。下面的代码就会因省略分号而产生语法错误:
    var a=1
    /(b+)/.exec("abbbbcd")
    alert(RegExp.$1)
      第一行声明了一个变量并且赋值为1,第二行用正则表达式提取一个字符串中的连续的b字符,第三行输出提取的字符串。尽管代码看上去正确,但执行时却会提示语法错误。原因在于第一行没有以分号结尾,于是解释器继续向下解析,看能否和上一行形成合法的语义,当遇到第二行的第一个字符/时,解释器会认为这是一个除法符号,因为它能够跟上一行后面形成合法的语法意义,但在继续解析第二行时则会发生错误。所以应该在第一行结尾加上分号,告诉解释器语句已经结束。