Hey ich habe hier eine for Schleife bei die die meiner Meinung nach richtig ist aber nicht geht. Java-Script Danke wenn ihr sie verbessert :)?

... komplette Frage anzeigen

4 Antworten

Das Script sollte so laufen, schließlich hat es ja auch in der Demo funktioniert die ich dir gepostet hatte.

Es sollte also drei mögliche Ursachen geben:

  • Es gibt einfach kein Element in deinem Markup mit der ID "div-test".
  • Du hast einen anderen Fehler in deinem Script, der die Ausführung des ganzen Scripts verhindert. Einfach überprüfen, indem du die Javascript-Konsole deines Browsers öffnet. (Normalerweise in den Entwicklertools die du über F12 erreichen kannst)
  • Das onload-Event wird nicht ausgeführt, weil es an anderer Stelle im Script überschrieben wurde. Um zu überprüfen ob das der Fall ist, kannst du mittels console.log("Test"); in der Funktion überprüfen, ob diese ausgeführt wird. (Die Ausgabe des Logs erfolgt in der o.g. Javascript-Konsole)Aus dem Grund sollte man Events immer möglichst über addEventListener binden! Außerdem eignet sich für dein Vorhaben das DOMContentLoaded-Event mehr, denn es wird aufgerufen wenn das Dokument fertig geladen und geparst ist und wartet nicht auf die Darstellung der Elemente. (Wie das onLoad-Event)https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListenerhttps://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
document.addEventListener("DOMContentLoaded", function() { /* ... */ });

Falls o.g. nicht weiterhilft, dann bräuchte man mehr Einblicke auf das Script, das Markup, die Ausgabe der Konsole und Co.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von maxlllll
20.06.2016, 17:12

Ich bekomme in der Konsole 

null is not an object (evaluating 'document.getElementById("div-test").appendChild') 

0

Da ist ein Semikolon zu viel. Hättest du einen Linter, oder würdest du debuggen, fiele das schneller auf.

<

p>Außerdem hat das Callback des onLoad-Events keinen Namen. Siehe https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onload.</p>

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Sarkophator
19.06.2016, 20:56

Auch wenn es nicht unbedingt schön ist, doppelte Semikolons zu nutzen, sollte es für Javascript relativ egal sein ob er (an der Stelle) keins, eines, zwei oder hunderte Semikolons hinsetzt. Sie werden einfach als empty statements wahrgenommen und tun im Endeffekt nichts.

Und Event-Handler müssen nicht zwingend anonyme Funktionen darstellen, sie können auch benannte Funktionen sein die entweder über den Namen oder wie in dem Codebeispiel oben gebunden werden.

0

Kann es sein, dass 

elm.id = "id"+i;

so night geht, da i eine Zahl und "id" ein string ist?

Antwort bewerten Vielen Dank für Deine Bewertung

Da ist ein ; zu viel in der 3-letzten Zeile.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?