尝试访问对象详细信息时收到“未定义”错误

时间:2015-02-09 02:01:20

标签: javascript

关于javascript,我是一个初学者,所以我希望你能忍受我。

我有一个html文件,其中包含一个包含三个值的表,用于报告各种系统状态 - 名称,状态和注释。我将表的内容拉入变量,并将其扫描为指向离线或部分在线系统的标签。如果找到,系统名称,状态和有关其状态的任何注释都存储在一个对象数组中(至少,我认为它是一个对象数组 - 我是新手)。

这是我遇到麻烦的地方。当我在表中循环寻找匹配值时,我能够显示一个警报,其中包含分配给对象的相应信息(例如 SmartPay,离线,不接受信用卡)。一旦我离开循环,我就无法引用我存储的任何数据。这是我正在使用的对象构造函数和函数:

function status(name, status, notes) {
  this.name = name;
  this.status = status;
  this.notes = notes;
}

function parseStatus() {
  var tagMatch = document.getElementsByTagName("td");
  var problemStatus = new Array();
  var j = 0;

  for (i = 0; i < tagMatch.length; i++) {  
    if (tagMatch[i].textContent == "Offline" || 
    tagMatch[i].textContent == "Partially Online") {
      problemStatus[j] = new status(tagMatch[i-1].textContent,   
      tagMatch[i].textContent, tagMatch[i+1].textContent);

    alert("OFFLINE: " + problemStatus[j]['name'] + ", " + 
    problemStatus[j]['status'] + ", " + problemStatus[j]['notes']);

    j++;
    }
  }
}

for循环结束时的警报会正确显示所有内容。如果我在循环的结束括号后添加它

alert(problemStatus[0]['name']);

我得到“无法读取未定义的属性'名称”

我不明白我哪里出错了。有人可以指出我正确的方向吗?

已修改为包含指向JSFiddle

的链接

0 个答案:

没有答案