代码之家  ›  专栏  ›  技术社区  ›  Arlen Beiler

这个javascript有什么问题?未定义数组

  •  6
  • Arlen Beiler  · 技术社区  · 14 年前

    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
    

    我正在使用谷歌Chrome如果它有任何帮助。

    8 回复  |  直到 14 年前
        1
  •  24
  •   Andris    14 年前

    它不是php-你应该使用

    var variable_name = new Array()
    

    或者更好

    var variable_name = []
    
        2
  •  8
  •   Community CDub    7 年前

    这不是将变量声明为空数组的方法。您应该使用:

    var articleHTML = [];
    

    See this previous question new Array()

        3
  •  2
  •   meder omuraliev    14 年前

    它是 [] 在ECMAScript中;这不是PHP。翻译是对的- array 不是 定义,这就是为什么你会这样。

        4
  •  2
  •   Wh1T3h4Ck5 jbrahy    12 年前
    var articleHTML = new Array();
    
        5
  •  1
  •   D'Arcy Rittich    14 年前

    而不是

    var articleHTML = array();
    

    var bodyHTML = array();
    

    var articleHTML = [];
    

    var bodyHTML = [];
    
        6
  •  1
  •   jave.web    12 年前

    注意!Javascript是区分大小写的,您必须在word数组中使用大写字母。

    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
    
        7
  •  1
  •   Mark Pieszak - Trilon.io johnkavanagh    9 年前

    你首先需要定义

    var divarray = new Array(); 
    
        8
  •  0
  •   IndieInvader    14 年前

    您也不需要六次使用var,您可以:

    var divarray = document.getElementById("yui-main").getElementsByTagName("div"),
        articleHTML = [],
        absHTML = [],
        keyHTML = [],
        bodyHTML = [],
        i = 0;
    

    它和你的六辆车一样好,但是看起来更好。

    另外,在实例化数组时不使用new还有很多令人信服的原因(除了[];比new Array()短得多;)