Hallo, ich habe zwei Eingabefelder und einen Button. Ich möchte, dass wenn der Button gedrückt wird, die beiden Einträge einer Tabelle hinzugefügt werden.
Ich löse von einem „reset“ button ein onClick-Event auf, dass eine Funktion startet. in dieser Funktion wird dann die Tabelle gezeichnet und die Werte ausgelesen.
Mein Problem: Das Formular verschwindet, wenn ich die Funktion aufrufe und man sieht nur noch die Tabelle. Woran liegt das? Kann man die Tabelle hinten einfach anhängen?#
document.write überschreibt das komplette Dokument, wenn die Seite vollständig geladen wurde.
du kannst mit appendChild elemente anhängen. dann musst du vorher natürlich elemente erstellen.
var tabelle = document.createElement("table");
for(scholar in arr) {
var row = document.createElement("tr");
var scho = document.createElement("td");
var scho2 = document.createElement("td");
scho.innerHTML = scholar;
scho2.innerHTML = arr[scholar];
row.appendChild(scho);
row.appendChild(scho2);
tabelle.appendChild(row);
}
Nur noch eins: Wieso kann ich die Tabelle nicht mit CSS bearbeiten? (siehe Code) bzw. warum verschwinden die zeilen und spaltenstriche und es bleibt nur der Rahmen der Tabelle selbt übrig?
Sorry, dass ich nochmal nachhake Die Varianten, wie man CSS einbindet sind mir schon klar. Mein Problem ist nur Folgendes: Wenn ich bspw.
table { border: 1px solid green; } mache, dann wird nur(!!) die gesamte tabelle außenherrum umrahmt aber die inneren zeilen- und spaltenstriche sind einfach nicht da. woran liegt das und wie kann ich das umgehen und trotzdem noch css verwenden?
bzw. wie gebe ich am geschicktesten linien in tabellen an? irgendwie sind bei mir gar keine linien in den tabellen, egal was ich mache …
Nochmal zu meinem Thema. Du sagst also document.write überschreibt das gesamte dokument, wenn dasselbe geladen wurde.
Wenn ich aber folgendes mache, dann stimmt das nicht mehr … warum?
var win = window.open(„“, „name“, „width=300, height=300“); // das dokument ist nun geladen, oder?
win.document.write(„test1“);
win.document.write(„test2“); // test1 steht immer noch da!! warum?
win.document.write(„test3“);
Hier würd plötzlich der Text einfach hinten drangehängt. wo liegt da jetzt der unterschied z
document.write überschreibt eigentlich nichts sondern gibt an der Stelle an der es ausgeführt wird den übergebenen Content in die Seite ein. Der Unterschied ist imho dabei wo es ausgeführt wird. Wenn es innerhalb von passiert, könnte tatsächlich das Dokument überschrieben sein. Innerhalb von wäre es nicht der Fall.
Hinweis: das sind nur meine spontanen Gedanken dazu. Ich selbst verwende document.write schon lange nicht mehr und nutze ebenfalls appendChild(), innerHTML etc. um Elemente zu erzeugen oder neue Inhalte einzubringen.
Öffne mal Bitte kein leeres Dokument sondern ein schon vorhandenes. Überschreibt test1 dann das vorhandene?
Dass test2 nicht test1 überschreibt, sollte daran liegen, dass es direkt nacheinander verarbeitet wird. Wie das DOM dort arbeitet kann ich dir auch nicht genau sagen.
Im Normalfall brauchst du aber auch kein document.write, sondern hängst Sachen ins vorhandene DOM ein oder ersetzt es (innerHTML)