Worin unterscheidet sich denn das Array [1,2,3]
function log(x) {
console.log('My value: ' + x);
}
var funcs = [1,2,3]
for (var i = 0; i < funcs.length; i++) {
funcs[i] = log.bind(this, i);
}
for (var j = 0; j < funcs.length; j++) {
funcs[j]();
}
Alles anzeigen
Ausgabe:
My value: 0
My value: 1
My value: 2
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
von dem Array [div.panel.panel-primary.shadow-primary, div.panel.panel-primary.shadow-primary]
function log(x) {
console.log('My value: ' + x);
}
var funcs = document.querySelectorAll('.shadow-primary');
for (var i = 0; i < funcs.length; i++) {
funcs[i] = log.bind(this, i);
}
for (var j = 0; j < funcs.length; j++) {
funcs[j]();
}
Alles anzeigen
Ausgabe hier:
Uncaught TypeError: funcs[j] is not a function
Ich trenne doch bei beiden Beispielen ein Array in dessen Einzelteile und gebe es in der Konsole aus. Wieso funktioniert dass mit einem einfachen Integer aber nicht mit einem HTMLDIVElement?
Kann es sein dass mein Code zwar korrekt ist aber ich von
document.querySelectorAll
kein Array zurück bekomme?
Wenn dem der Fall ist wie kann ich das Objekt in ein Array umwandeln?