ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
2551
2551
EMPFEHLEN
-
Hallo,
habe ein großes (für euch vielleicht kleines) JS Problem. Ich habe eine Checkbox. Wenn man die anklickt soll eine Tabelle erscheinen. Das Formular sieht folgendermassen aus:
Nun die Funktion change():HTML-Code:<form action="" method="" name="modules"> <TABLE> <TR VALIGN="top"> <TD ALIGN="left"><input type="checkbox" name="module1" value="module1" onClick="JavaScript:change();"></TD> </TR> <DIV id="mod1"></DIV> </TABLE> </form>
Code :1 2 3 4 5 6 7 8 9 10 11
function change() { var newTR = document.createElement("TR"); document.getElementById("mod1").appendChild(newTR); var newTD = document.createElement("TD"); document.getElementById("mod1").firstChild.appendChild(newTD); var td = document.getElementById("mod1").firstChild.firstChild; var newTDText = document.createTextElement("Hier steht ein Text in einer Tabelle!"); td.appendChild(newTDText); }
Leider erscheint ein JS Fehler beim Anklicken der Ckeckbox. Kann mir jemand helfen? Hab heut erst angefangen mich mit den Nodes zu beschäftigen und steig trotz SelfHTML noch nicht so ganz dahinter...
Danke schonmal für jede Antwort!Geändert von kesnw (02.02.05 um 14:06 Uhr)
-
Hi,
wie ich sehe, willst du eine neue Zeile in die bestehende Tabelle einhängen. Dazu musst du
einen TBODY mit ID einfügen. An diesen kannst du mit der Methode appendChild() einen
Zeilenknoten anhängen.
HTML-Code:
Das zugehörige JavaScript:HTML-Code:<form action="" method="" name="modules"> <table> <tbody id="tbodyID"> <tr VALIGN="top"> <td align="left"> <input type="checkbox" name="module1" value="module1" onClick="javascript: appendTR();"> </td> </tr> </tbody> </table> </form>
Die createTextElement-Methode habe ich durch innerHTML ersetzt - ging schneller. SollteCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
function appendTR(){ // Neues Tabellenzeilen-Objekt erstellen var newTR = document.createElement("tr"); // Neues Tabellenzellen-Objekt erstellen var newTD = document.createElement("td"); // HTML einfügen newTD.innerHTML = "hallo welt"; // Neue Tabellenzelle an Zeile "anhängen" newTR.appendChild(newTD); // Neue Zeile in Tabelle "einhängen" document.getElementById("tbodyID").appendChild(newTR); }
aber in den gängigen Browsern funktionieren.
Ich hoffe, das bringt dich weiter.
Ciao
Quaese
Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
Weiterhin... es gibt keine Methode createTextElement()(in diesem Zusammenhang).... hast du bestimmt verwechselt mit createTextNode()
-
Klasse, das sieht gut aus. Eine Frage hab ich aber noch.
Meine Tabelle besteht bereits aus unzähligen Zeilen und ich möchte diese neue Zeile mittendrin einfügen. Wie ich das sehe wird bei deinem Script die Zeile ans Ende angehängt. Wie kann ich das realisieren. Meine Idee war eben das <div id="mod1"></div> genau an der Stelle wo die neue Zeile reinsoll...
Danke nochmal!
-
z.B. per insertBefore()
Das mit dem <div> kannst du eher vergessen... ein <div> hat dort mittendrin nix verloren, und darf auch kein <tr> enthalten.
-
Super klasse, es funktioniert. Nun muss ich nur noch die erzeugten Zeilen (sind von variabler Länge) im <tbody> löschen wenn ich die Checkbox deaktiviere!
Wie lösche ich den gesamten Baum in einem <tbody> element
-
Am Einfachsten geht es, wenn du den einen neuen TBODY erzeugst, und den Vorhandenen damit per replaceChild() ersetzt.
Ähnliche Themen
-
WPF Tabelle erzeugen wie DataGridView
Von zer0 im Forum .NET WPF & SilverlightAntworten: 0Letzter Beitrag: 15.07.10, 13:40 -
Tabelle aus Array erzeugen
Von Spranta im Forum PHPAntworten: 3Letzter Beitrag: 10.07.08, 13:28 -
in .sql Tabelle schreiben / erzeugen / MFC
Von mats_MF im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 18.06.08, 19:42 -
html Tabelle erzeugen
Von hibbert im Forum PHPAntworten: 4Letzter Beitrag: 28.09.03, 22:44 -
Tabelle dynamisch erzeugen
Von Armageddon im Forum PHPAntworten: 7Letzter Beitrag: 11.08.03, 19:13





Zitieren

Login





