865 Aufrufe
Gefragt in Webseiten HTML von
Hallo zusammen,

ich arbeite mich gerade in JavaScript und DOM ein und versuche natürlich nicht nur zu "frickeln", sondern auch die Funktionsweise zu verstehen. Die Baumstruktur und das Ansprechen über Verwandschaftsbeziehungen ist recht einfach zu verstehen.

Ich habe mir ein kleines Beispiel geschrieben und stoße hier aber schon auf etwas, dass ich leider nicht verstehe:

<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
function start(){
var element=document.getElementById('main').children;

for(var i in element){
alert(i);
}
}
</script>

</head>
<body>

<div id="main">
<a href="http://google.de">GOOGLE</a>
<button id="button" onClick='start()' >START</button>
</div>
</body>
</html>


Ich wollte mir ausgeben lassen, welche Kindelemente mein div-Element main enthält. Wenn ich auf den Button klicke, gibt die Alert-Schleife aber folgende Ausgabe:


0
1
button
item
namedItem
iterator
length


Ich hätte das erwartet:

item (für das Link-Element)
button (für das Button-Element)


Danke für Hilfe!

2 Antworten

0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
Die Schleife durchläuft nicht die Child-Elemente, sondern die Eigenschaften der HTMLCollection.

Richtig wäre:

for(i=0;i<element.length;i++) {
alert(element[i]);
}
0 Punkte
Beantwortet von
Dankeschön :-)
...