Ich bin neu hier (und neu in JavaScript), also bitte entschuldigen Sie meine super grundlegenden Fragen. Ich habe eine HTML-Seite mit verschiedenen Bildern, die alle eine Klasse teilen. Mit getElementsByClassName erhalte ich ein Array. Ich möchte jeder Zelle in dem Array einen Ereignis-Listener hinzufügen, indem Sie die Map() - Funktion verwenden.Javascript .map() ist keine Funktion
Das ist, was ich habe:
window.onload = function(){
var allImgs = document.getElementsByClassName("pft");
var newImgs = allImgs.map(
function(arrayCell){
return arrayCell.addEventListener("mouseover, functionName");
}
);
};
Dies hält den Fehler zeigt „allImgs.map ist keine Funktion“, auch wenn ich die innere Funktion, um etwas zu ändern, die nicht den Ereignis-Listener nicht enthält.
Ich habe eine andere Version dieses Codes, wo ich nur die Array-Zellen innerhalb von window.onload durchlaufen und den Ereignis-Listener zu jedem von ihnen auf diese Weise hinzufügen und es funktioniert. Warum funktioniert die .map() - Funktion nicht? Kann es nicht in window.onload verwendet werden?
http://stackoverflow.com/questions/222841/most-efficient-way-to-convert-an-htmlcollection-to-an-array – baao
Das macht jetzt viel mehr Sinn, danke. – JSn00b
@ Flawyte Eek, es funktioniert noch nicht für mich. Ich übersehe wahrscheinlich etwas Super-Basic. Folgendes habe ich bekommen: 'window.onload = function() { \t var allImgs = document.getElementsByClassName (" pft "); \t var newImgs = [] .slice.call (allImgs); \t console.log (newImgs.typeof); \t newImgs.map ( \t \t \t Funktion (arrayCell) { \t \t \t \t return arrayCell.addEventListener ("mouseover, flipOver"); \t \t \t} \t); }; ' – JSn00b