Javascript和for循环不起作用

Javascript和for循环不起作用,javascript,for-loop,Javascript,For Loop,在这件事上我是无可奈何的 这是我正在执行的代码 var Category = []; //START OF VARIABLES var ID1; var ID2; var ID3; var ID4; var ID5; var temp1; var temp2; var temp3; var temp4; var temp5; var extracats2; var Level2

在这件事上我是无可奈何的

这是我正在执行的代码

   var Category = [];

    //START OF VARIABLES

    var ID1;
    var ID2;
    var ID3;
    var ID4;
    var ID5;

    var temp1;
    var temp2;
    var temp3;
    var temp4;
    var temp5;

    var extracats2;

    var Level2CatsLen;
    var Level3CatsLen;
    var Level4CatsLen;
    var Level5CatsLen;

    var Level2Children = [];
    var Level3Children = [];
    var Level4Children = [];
    var Level5Children = [];

    //END OF VARIABLES

        var dispatchMouseEvent = function(target, var_args) {
                var e = document.createEvent("MouseEvents");
        e.initEvent.apply(e, Array.prototype.slice.call(arguments, 1));
        target.dispatchEvent(e);
                target.addEventListener("click",Level2CatsLen = GetLevel2, true);

    }

    var Level1Cats = document.getElementsByClassName("p-pstctgry-lnk-ctgry "); //GETTING LEVEL 1 CATS

    var Level1CatsLen = Level1Cats.length; //GETTING LEVEL 1 CAT LEN

        function GoToLevel2(n) { //GO TO NEXT LEVEL!
        setTimeout(function() {
        ID1 = Level1Cats[n].id;
        temp1 = Level1Cats[n].innerHTML;
        temp1 = temp1.replace(/&amp;/gi, "&").replace(/<[^>]*>/gi, "").replace(/<[^>]*>/gi, "");
        console.log(temp1);
        dispatchMouseEvent(Level1Cats[n], "mouseover", true, true);
        dispatchMouseEvent(Level1Cats[n], "click", true, true);
        }, i*2000);
        }

        function GoToLevel3(n) { //GO TO NEXT LEVEL!
        setTimeout(function() {
        ID2 = Level1Cats[n].id;
        temp2 = Level1Cats[n].innerHTML;
        temp2 =temp2.replace(/&amp;/gi, "&").replace(/<[^>]*>/gi, "").replace(/<[^>]*>/gi, "");
        console.log(temp2);
        dispatchMouseEvent(Level3Cats[n], "mouseover", true, true);
        dispatchMouseEvent(Level3Cats[n], "click", true, true);
        }, i*1500);
        }

        function GetLevel2() { 
        setTimeout(function() {
            Level2Children = [];
        Level2Cats = document.getElementsByClassName("p-pstctgry-lnk-ctgry");
        console.log("Level1CatLen: "+Level1CatsLen);
        var Level2CatsLen = Level2Cats.length
        console.log("Level2CatLen: "+Level2CatsLen);

        extracats2 = Level2CatsLen - Level1CatsLen;
        console.log("EXTRACATS2: "+extracats2);


            console.log("TRYING CAT 2");

            //#### LEVEL 3 ####
            for (ii = 0; ii < extracats2; ii++) {
            if (extracats2 < 2) {
            alert("lel");
                GoToLevel3(ii);     

            Level2Children.push(Level2Cats[ii+Levael1CatsLen].id);
            }

        //DO SOMETHING WITH CATEGORIES - Level 1

        Category.push({Name: temp1, ID: ID1, ParentID: 'null', ChildrenIDs: Level2Children});
        console.log("LELLELLEL");
        //FINISH


        return Level2CatsLen;
        }},3000);
        }

    //THE ACTUAL METHOD!

        for (i = 0; i <= Level1CatsLen-1; i++) {
        //#### LEVEL 2 ####
        GoToLevel2(i);


        // END OF LEVEL 1
    }
var类别=[];
//变量的开始
变量ID1;
var ID2;
变量ID3;
var ID4;
变量ID5;
var temp1;
var temp2;
var temp3;
var temp4;
var-temp5;
var-extracats2;
风险等级2卡特斯伦;
var Level3CatsLen;
var Level4CatsLen;
var等级5Catslen;
var Level2儿童=[];
var Level3Children=[];
var Level4儿童=[];
var Level5Children=[];
//变量结束
var dispatchMouseEvent=函数(目标,变量参数){
var e=document.createEvent(“MouseEvents”);
e、 initEvent.apply(e,Array.prototype.slice.call(arguments,1));
目标。调度事件(e);
target.addEventListener(“单击”,Level2CatsLen=GetLevel2,true);
}
var Level1Cats=document.getElementsByClassName(“p-pstctgry-lnk-ctgry”)//得到一级猫
var Level1CatsLen=Level1Cats.length//获得1级CAT LEN
函数GoToLevel2(n){//转到下一级!
setTimeout(函数(){
ID1=Level1Cats[n].id;
temp1=Level1Cats[n].innerHTML;
temp1=temp1。替换(/&;/gi,“&”)。替换(/]*>/gi,”)。替换(/]*>/gi,”);
console.log(temp1);
DispatchMouseeEvent(Level1Cats[n],“鼠标悬停”,true,true);
DispatchMouseeEvent(Level1Cats[n],“单击”,true,true);
},i*2000);
}
函数GoToLevel3(n){//转到下一级!
setTimeout(函数(){
ID2=Level1Cats[n].id;
temp2=Level1Cats[n].innerHTML;
temp2=temp2.替换(/&;/gi,“&”).替换(/]*>/gi,”).替换(/]*>/gi,”);
console.log(temp2);
DispatchMouseeEvent(Level3Cats[n],“鼠标悬停”,true,true);
DispatchMouseeEvent(Level3Cats[n],“单击”,true,true);
},i*1500);
}
函数GetLevel2(){
setTimeout(函数(){
2级儿童=[];
Level2Cats=document.getElementsByClassName(“p-pstctgry-lnk-ctgry”);
控制台日志(“Level1CatLen:+Level1CatsLen”);
var Level2CatsLen=Level2Cats.length
console.log(“Level2CatLen:+Level2CatsLen”);
extracats2=2级Catslen-1级Catslen;
console.log(“EXTRACATS2:+EXTRACATS2”);
console.log(“尝试第2类”);
//####三级####
对于(ii=0;ii对于(i=0;i嘿,只是一些建议,不确定是否是这样

  • 不确定是您的代码还是其他代码。无论如何,第37行上的分号是个好主意
  • var而不是隐式声明(即无var)总是一个好主意
  • 至于for循环,它不会循环。在它结束之前返回Level2CatsLen,它甚至不是for循环的一部分,因此值将保持不变
  • var Level2CarsLen在第70行从未以分号结尾,因此这也可能是问题的一部分
  • 此外,Level1Cats1len拼写错误。它应该改为Level1CatsLen,不带a
  • 另外,从第65行开始的函数GetLevel2(){在第97行结束。因此,您可能希望它在这之前完成

  • 希望其中一个能帮上忙。你做得很好,坚持下去,即使其中一个做不到!拉兹鲁提出了一些非常好的观点,我完全同意他的观点

    看起来你说过你想要“2以上”的数字,而你的if语句却在寻找小于2的数字

    我想你需要把它改成:
    if(extracats2>2){

    简单的错误,容易被忽略:)

    //#### LEVEL 3 ####
    for (ii = 0; ii < extracats2; ii++) {
    if (extracats2 < 2) {
    alert("lel");
        GoToLevel3(ii);     
    
    Level2Children.push(Level2Cats[ii+Levael1CatsLen].id);
    }