2016-05-22 3 views
0

Ich bin relativ neu in JavaScript, aber ich habe eine Menge Hintergrund in Java. Also frage ich mich, wie ich jedes einzelne Tag in einem speziellen Div durchlaufen könnte. Wie eine for-Schleife. Das ist, was ich habe schon:Wie HTML-Tags in ein Array in Javascript

var allPeople = document.getElementsByClassName('person').toArray; 

console.log(allPeople.length); 

for(var i = 0; i < allPeople.length; i++) { 
    console.log(document.getElementById("#main > .person > #inside > #span")); 
    document.getElementById("#main > .person > #inside > #left > li > #normal > #kd").innerHTML = 1; 
} 

Ich denke, das Problem ist mit der 'document.getElementsByClassName (' Person '). ToArray;' Teil. Irgendwelche anderen Empfehlungen?

+1

'document.getElementsByClassName ('Person')', das ein iterable Array wie Ergebnis zurückgibt. [MDN] (https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName) –

+0

Ihr getElementById sieht ein bisschen schrullig aus, make 'document.querySelectorAll (" # main> .person > #inside> #span ")' was wiederum ein Array zurückgibt – Icepickle

+0

'var allPeople = Array.apply (null, document.getElementsByClassName ('person'));' –

Antwort

0

die .toArray in Zeile entfernen 1

die Funktion getElementsByClassName() ein Array zurückgibt, Sie brauchen es nicht zu einer konvertieren.

+0

'getElementsByClassName()' gibt kein Array zurück, sondern eine [HTMLCollection] (https: //developer.mozilla. org/de-DE/docs/Web/API/Document/getElementsByClassName), die nicht über die Array-Methoden verfügt, aber Sie können sie immer noch mit einer for-Schleife durchlaufen. – Grassator

0

Wenn Sie es6 verwenden

[ ...document.getElementsByClassName('person')].forEach(el => { //do something })