这段代码出了什么问题?
var divarray = document.getElementById("yui-main").getElementsByTagName("div");
var articleHTML = array();
var absHTML;
var keyHTML;
var bodyHTML = array();
var i = 0;
for ( var j in divarray) {
if(divarray[i].className == "articleBody"){
alert("found");
articleHTML = divarray[i];
break;
}
bodyHTML[i] = '';
if(articleHTML[i].className == "issueMiniFeature"){continue;}
if(articleHTML[i].className == "abstract"){absHTML = articleHTML[i]; continue;}
if(articleHTML[i].className == "journalKeywords"){keyHTML = articleHTML[i]; continue;}
bodyHTML[i] = articleHTML[i];
i++;
}
这是我得到的错误:
ReferenceError: array is not defined
我正在使用谷歌浏览器,如果有帮助的话。
答案 0 :(得分:23)
这不是php - 你应该使用
var variable_name = new Array()
甚至更好
var variable_name = []
答案 1 :(得分:8)
答案 2 :(得分:2)
ECMAScript中的[]
;这不是PHP。解释器是正确的 - array
未定义,这就是你得到它的原因。
答案 3 :(得分:2)
var articleHTML = new Array();
答案 4 :(得分:1)
而不是
var articleHTML = array();
和
var bodyHTML = array();
DO
var articleHTML = [];
和
var bodyHTML = [];
答案 5 :(得分:0)
首先需要定义
var divarray = new Array();
答案 6 :(得分:0)
你也不需要使用var六次,你可以这样做:
var divarray = document.getElementById("yui-main").getElementsByTagName("div"),
articleHTML = [],
absHTML = [],
keyHTML = [],
bodyHTML = [],
i = 0;
与你的六个变量一样有效,但看起来更好。
还有一些令人信服的理由不在实例化数组时使用new(除了[];比新的Array()短得多;)
答案 7 :(得分:0)
请注意! Javascript区分大小写,你必须在单词数组中使用大写A.
var myarr = new array(); //THIS IS WRONG! and will result in error not defined
所以这些是正确的方法:
var myarr = new Array(); //THIS IS CORRECT (note the "big" A) :)
var myarr = []; //and this is correct too