javascript - 错误 : Is null or not an object

标签 javascript html

我在 javascript 中使用了一个多维数组来存储我用来动态生成内容的数据,它在任何 webkit 浏览器以及 firefox 和 IE 9 及更高版本中都能正常工作,但出于某种原因 IE 8(我测试过它)和 IE 7(我模拟的)在以下代码中给我一个错误“是空的或不是一个对象”:

var data =
        [
        ["A","X",[5,6],3,2014],
        ["V","L",[9,10],4,2014],
        ["X","N",[10,11],6,2014]
        ];
for(var t=0;t<data.length;t++){
  if(data[t][3]==i){
     alert("Found");
   }
}

错误明确指出“3”为空或不是对象,并引用 if 语句中的 3。错误可能是因为我没有将数组声明为

var data=new Array();

还是有其他问题?

附加信息:此代码位于 jQuery 的文档就绪事件中。

最佳答案

问题中的代码不会产生该错误,但如果您在数组中的最后一项之后有尾随逗号,它将:

var data =
    [
    ["A","X",[5,6],3,2014],
    ["V","L",[9,10],4,2014],
    ["X","N",[10,11],6,2014],
    ];
for(var t=0;t<data.length;t++){
  if(data[t][3]==i){
     alert("Found");
   }
}

在 IE8 和更早版本中,该数组将有四个项目而不是三个,最后一个项目将是未定义的。当t3时,data[t]将返回undefined,并应用[3] 到那将导致该错误消息。它表示“'3' 为 null 或不是对象”,因为 3 是您用来获取不是对象的值的索引。

关于javascript - 错误 : Is null or not an object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991330/

相关文章:

javascript - dojo/on with mouseenter, mouseleave 在 Google Chrome 中不工作

html - 嵌套元素的交替背景颜色

html - 在 Opera 12 中使用 css3 的多个图像

html - Windows 上的 Chrome 中的字体外观

javascript - 检查鼠标点击情况

javascript - 我们如何使用 jQuery 在浏览器中禁用(而不是隐藏)滚动条?

javascript - 是什么让长整数数值(16 个以上字符)在 JavaScript 中发生变化?

javascript - 允许我网站的消费者将动态数据合并到他们的网站中的最佳技术

javascript - 根据链接填充 html 容器

javascript - window.print() 就像它会打印但什么都不做