Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Ein HTML element durch ein anderes ersetzen?





Frage

Hallo Leute, mit [code]element.innerHTML="neuer Inhalt" [/code] kann ich den Inhalt eines HTML-Elementes Austauschen, wie aber kann ich das ganze Element durch ein anderes ersetzen? mfg Dramirak

Antwort 1 von Furrer

Indem Du das Element in einen DIV-Container einschließt und dann den Inhalt von <div> austauscht.

Furrer

Antwort 2 von Dramirak

Das ist leider keine Lösung für mein Problem. Ich will das Element austauschen, das eine bestimmte ID hat. Das geht so wie du es beschrieben hast nicht.

Trotzdem danke
Dramirak

Antwort 3 von Furrer

Wieso soll das nicht gehen? Divs kannst Du auch ne ID geben.

Furrer

Antwort 4 von Dr.Ma-Busen

Moin!

Versuch es mal mit createElement(), ich glaube das ist das was du suchst.

MfG

Antwort 5 von Dramirak

Hier ein Beispiel für die Verwendung:


<script>
var index=0;
 function nochEiner(){
   var nDiv = document.getElementsById(´nochEiner´);
   nDiv = ´<input type="text" name="name´+index+´" /><div id="nochEiner"></d iv>´; // das functionniert leider nicht   
  index++;
}
</script>

<form>
<a href="#" id="link" onclick=nochEiner()>
<input type="text" name="name0" />
<div id="nochEiner"></div>
</form>  


Wie man sehen kann soll jedesmal, wenn ich auf den link="link" klicke ein weiteres Input angezeigt werden. Dieses soll das div ersetzen, denn ich hänge das gleiche DIV wieder hinter das neue Input damit es beim nächsten mal wieder ersetzt werden kann.

mfg
Dramirak

Antwort 6 von Furrer

Verstehe ich Dich richtig, daß Du immer nur ein neues Element hinzufügen willst? Dann lese doch den alten Div-Inhalt aus, hänge das neue Element daran und schreibe das Ganze wieder ins Div zurück. So kommst Du mit einem Div aus.

Furrer

Antwort 7 von Dramirak

Das hatte ich Anfangs auch so gemacht, das Problem dabei ist, dass der Inhalt von einem schon ausgefüllten DIV nicht berücksichtigt wird. Das heisst: jedesmal wenn ein neues Input angehängt wird wird der Inhalt der vorherigen gelöscht.

Antwort 8 von Furrer

Deswegen sage ich ja, Du mußt den Inhalt des Divs vorher auslesen und dann diesen alten Inhalt ergänzt um das neue Element zurückschreiben.

Furrer

Antwort 9 von Dr.Ma-Busen

Antwort 4 übersehen? :)

Zu der Methode mit den DIV: Lese es nicht aus und hänge das neue elemnt dran, sondern erstelle eine Variable in der du die Elemente anhängst und dann jedes mal den Inhalt des DIV mit dem Inhalt der Variable überschreibst.
Wirst nur Probleme haben wenn du eingabefelder benutzt, weil dessen inhalte dann beim hinzufügen eines neuen element wieder gelöscht werden.

Schau dir am besten mal den Link in Antwort 4 an, dass wird dir bei dein vorhaben weiterhelfen.

MfG

Antwort 10 von Friedel

Das ist das klassische Anwenungsgebiet für DOM. Ich würde also das Nodeobjekt anwenden. Aber das ist hier nicht auf die Schnelle zu erklären. Du solltest dir http://de.selfhtml.org/javascript/objekte/node.htm und http://f-i-t.net/Objekte_tauschen/start.htm durchlesen. Der 2. Link ist eine Erklärung, die ich mal für jemanden mit einer etwas anderen Frage gemacht habe. Vielleicht holft dir aber besonders die 2.Seite trotzdem etwas weiter.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: