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(/&/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(/&/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);
}