나는이 문제에 너무 많은 저쪽 편에 있습니다.자바 스크립트 및 for 루프가 작동하지 않습니다.
여기는 제가 실행중인 코드입니다. 의도 한대로 그것은 종류의 실행
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
}
..
그래서 그것은 루프하지만 조건을 충족하지 못하는 몇 가지 이유는 다음을 얻는다.
//#### LEVEL 3 ####
for (ii = 0; ii < extracats2; ii++) {
if (extracats2 < 2) {
alert("lel");
GoToLevel3(ii);
Level2Children.push(Level2Cats[ii+Levael1CatsLen].id);
}
내가 알 수 있듯이 실제로 경고는 있지만 결코 실제로는 발생하지 않습니다.
위의 결과는 하나의 카테고리를 제외한 모든 카테고리가 2 이상이므로 for 루프 내에서 다음 코드를 실행해야한다고 덧붙입니다. 그것은 ..
어떤 아이디어?