JavaScript: Schachbrett Schleifen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Es gibt verschiedene Fehler in deinem Dokument.

1) Deinem Dokument fehlt der Doctype und ein Seitentitel (html- und body-Element hingegen sind nicht explizit notwendig).

2) Der Starttag für das Formular fehlt. Im Übrigen würde ich den Button mit in das Formular verschieben. Er schickt es auch nicht ab, da es sich um keinen submit-Button handelt.

3) Deine label-Element verweisen auf Elemente, die nicht existieren. Ändere den Wert des for-Attributs jeweils auf zeilen und spalten.

4) Deine Schleifen bergen jeweils zwei Fehler:

for(i=0; i < spalten.value; i++); {

Zum einen zählen sie gegen den Wert undefined. In den Variablen spalten und zeilen steht jeweils schon der numerische Wert aus den Eingabefeldern. Du darfst also nicht erneut value aufrufen.

Zum anderen führen deine Schleifen nur eine leere Anweisung aus (beachte das Semikolon). Der Block, der danach beginnt, ist nicht mehr der Schleifenrumpf.

Entferne also auch das Semikolon hinter jedem Schleifenkopf.

5) Ich würde dir abschließend noch raten, immer aussagekräftige Bezeichner zu verwenden (t ist das bspw. gar nicht), nur bei einer Sprache zu bleiben (Beispiel: entweder tabelle oder überall englische Bezeichner) und Variablen wirklich nur in dem Block zu deklarieren, in dem sie tatsächlich gebraucht werden. Das heißt, i und t wandern jeweils in die Schleifenköpfe:

for (let i = 0; i < spalten; i++) {

So hältst du dein Skript übersichtlich.

Werte, die sich voraussichtlich nie zur Ausführungszeit ändern (z.B. spalten, table, etc.) können zudem ruhig als konstant deklariert werden.

Beispiel:

const zeilen = document.getElementById("zeilen").value;

Hannah720  20.04.2020, 00:31

Hier fehlt noch das sich "tr.appendChild(td);" nicht innerhalb der verschachtelten Schleife befindet

2

Im HTML-Bereich fehlen <html> </html> <body> </body> und der Script ist nicht eingebunden


M3LLemAmr 
Beitragsersteller
 19.04.2020, 23:54

Oja das habe ich halt nicht veröffentlicht haha aber danke

0
Hannah720  20.04.2020, 00:09
@M3LLemAmr

"use strict";

window.addEventListener("load", init);

let i;

let t;

let tr;

let td;

function init() {

  console.log("Fenster ist geladen");

  let btn = document.getElementById("btn");

  btn.addEventListener("click", btn_angeklickt);

}

function btn_angeklickt() {

  console.log("btn angecklickt");

  let zeilen = document.getElementById("zeilen").value;

  console.log(zeilen);

  let spalten = document.getElementById("spalten").value;

  console.log(spalten);

  let table = document.getElementById("bratan");

  for (i = 0; i < spalten; i++) {

    tr = document.createElement("tr");

    table.appendChild(tr);

    for (t = 0; t < zeilen; t++) {

      td = document.createElement("td");

      if (i % 2 == t % 2) {

        td.style.backgroundColor = colors[0];

        td.style.height = "60px";

        td.style.width = "60px";

      } else {

        td.style.backgroundColor = colors[1];

        td.style.height = "60px";

        td.style.width = "60px";

      }

      tr.appendChild(td);

    }

  }

}

let colors = ["#044272", "#80AB52"];

0
Hannah720  20.04.2020, 00:11
@Hannah720

Falls du Fragen zu den Änderungen hast kann ich dir die gerne erklären

0
M3LLemAmr 
Beitragsersteller
 20.04.2020, 00:20
@Hannah720

hey, danke für dein Versuch, aber ich glaube das Problem liegt an die Schleifen.. laut aufgabe sollen durch diese verschatelte schleifen und das eine Verzweigung ein Schachbrett mit 2 Farben gemacht werden

0
Hannah720  20.04.2020, 00:22
@M3LLemAmr

Ja Mein Code funktioniert doch, habs doch eben noch getestet.

0
M3LLemAmr 
Beitragsersteller
 20.04.2020, 00:24
@Hannah720

also durch dein Code kann ein Schachbrett erstellt werden? wieso geht es bei mir nicht, ich versuche es nochmal jetzt aber glaube nicht

0
Hannah720  20.04.2020, 00:29
@M3LLemAmr

Kopier einfach alles rein, im Code waren nämlich mehrere Dinge fehlerhaft

0
M3LLemAmr 
Beitragsersteller
 20.04.2020, 00:31
@Hannah720

Omg jetzt plötzlich funktioniert es, ich habe aber dafür neue Dateien erstellt. Ja eigentlich weiß ich nicht was du gemacht hast :o ich kann die aber Googlen, außer du würdest es gerne. weil ich will dir nicht noch mehr Zeit verschwenden. Übrigens Vielen lieben Dank. Die Abgabe war bis morgen und in dieser Corona Zeit ist es ja sehr schwierig alles alleine hinzubekommen.

0
Hannah720  20.04.2020, 00:32
@M3LLemAmr

Oben hat jemand aufgelistet was daran falsch war, und kein problem :)

0
M3LLemAmr 
Beitragsersteller
 20.04.2020, 00:32
@M3LLemAmr

Hast du dein Code bearbeitet LOL, welche Fehler hast du bitte gefunden ???

0
M3LLemAmr 
Beitragsersteller
 20.04.2020, 00:34
@Hannah720

Ich wünsche dir einen schönen Abend, eine gute Nacht und eine angenehme Woche. Lg

0