Ich kann nicht verstehen, warum ich Elemente aus einer HtmlCollection nicht bekommen kann. Dieses Codebeispiel:Wie erhalten Sie Elemente von einem Javascript HTMLCollection
var col = (document.getElementsByClassName("jcrop-holder"));
console.log(col);
erzeugt diese Ausgabe auf der Konsole:
Ich versuche, das dic.jcrop-Halter-Objekt zu erhalten, aber ich kann es aus meiner Variable col zu bekommen. Keines dieser Werke:
console.log(col[0]); // undefined
console.log(col.item(0)); // null
// check length of collection
console.log(col.length); // 0
Also, wenn die Länge ist 0 warum die Konsole eine Länge von 1 zeigt, sowie Objekte im Innern? Wenn ich den Knoten öffne, enthält er Kinder. Was ist los?
Hier sind einige erweiterte Knoten. Ich habe div.jcrop.holder nicht erweitert, weil es zu lang ist. Hier sind Kinder Elemente:
Versuchen Sie 'document.getElementsByClassName (" jcrop-holder ") [0]' und 'document.querySelector (". jcrop-holder ")' – Tushar
Sie sollten uns Ihren vollständigen Code zeigen (oder zumindest den Teil, den Sie 'console.log' verwenden und den, wo Sie versuchen, es zu benutzen. Es scheint Sie ändern diese Klasse zwischen der Zeit, zu der Sie sich in der Konsole anmelden, und der Zeit, zu der Sie sie verwenden möchten. – Buzinas
'getElementsByClassName' gibt eine _live collection_ zurück. Das kleine blaue 'i' in der Konsole zeigt an, dass das Array ausgewertet wird, wenn Sie es erweitern_. Es ist offensichtlich etwas zwischen dem Abrufen der Sammlung und dem "console.log" der Eigenschaften davon und dem tatsächlichen Überprüfen der Sammlung in der Konsole. –