2017-02-17 6 views
-5
var divs = []; 
for (var x = 0; x <= nodeArray.length; x++) { 
    for (var q = 0; q <= nodeArray.childElementCount; q++) { 
     divs[x][q] = nodeArray[x].childNodes[q].childNodes[0] 
    }; 
}; 

Ich brauche ein zweidimensionales Array des Kindes jedes Kindes eines Div für mehrere divs. Kann es nicht zur Arbeit, c Wer weiß, ob dies sogar mit Javascript möglich ist?Javascript; geschachtelt for-loop funktioniert nicht

Danke.

Bearbeiten:

Danke Jungs, es funktioniert jetzt! : D Ich landete tun es wie folgt auf:

var divs = []; 
    nodeArray.forEach(function(array, index) { 
     divs[index] = nodeArray[index].children; 
    }); 

    var imgs = []; 
    for (var x = 0; x < divs.length; x++) { 
     imgs[x] = []; 
     for (var y = 0; y < divs[x].length; y++) { 
      imgs[x][y] = divs[x][y].childNodes[0]; 
     } 
    } 

mit Ihrem Feedback es jetzt funktioniert! Wirklich wirklich, wirklich danke! ; D

+0

Ofcourse dies möglich ist. Aber Sie müssen 'divs [x] = [];' auch in der Schleife setzen, da Sie versuchen, auf nicht existierende Arrays zu stoßen. 'divs [x]' existiert nicht, wenn Sie es nicht erstellen, also kann 'divs [x] [q]' auch nicht existieren. – Shilly

Antwort

0
  1. Arrays 0 indexierten sind, bedeutet dies, daß das letzte Element eines Arrays nicht array.length ist aber array.length - 1.
  2. Sie müssen ein neues Array (Sub-Array) erstellen und dann Elemente hinzufügen.

Der Code sollte so aussehen:

var divs = []; 
for (var x = 0; x < nodeArray.length; x++) { 
//   here ^^^ 
    divs[x] = []; // create a new sub-array (or divs.push([]);) 
    for (var q = 0; q < nodeArray.childElementCount; q++) { 
    //   here ^^^ 
     divs[x][q] = nodeArray[x].childNodes[q].childNodes[0]; 
    }; 
}; 
0
var divs = []; 
for (var x = 0; x <= nodeArray.length; x++) { 
    divs[x] = []; 

    for (var q = 0; q <= nodeArray[x].length; q++) { 
     divs[x][q] = nodeArray[x][q][0]; 
    }; 
}; 
Verwandte Themen