关于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
的链接