Tim: appendChild

Hallo,

ich versuche in einem div Daten ans Ende anzuhängen.
im Moment mit:

  
var neu= document.createTextNode("<div>neuer text</div>");  
document.getElementById("text").appendChild(neu);

das Problem ist allerdings, dass der Text den ich anhängen will HTML Tags beinhaltet und dieser von js als Text um formatiert wird.
D.h. aus <div>neuer text</div> wird &lt;div...
Wie bekomme ich js dazu, dass es mir den HTML Teil auch als HTML anzeigt?

PS: innerHTML+= ist keine Losung, da damit der gesamte teil neu geladen wird und dies nicht passieren darf.

Danke, Tim

  1. hallo,
     du kannst doch das div Element auch mit js als Objekt erzeugen und dann einhängen so etwa:

      
    var new_div = document.createElement("div");  
    new_div.innerHTL = "neuer text";  
    document.getElementById("text").appendChild(new_div);
    

    so hätte ich es probiert :D
    vie Erfolg

    Koken

    Hallo,

    ich versuche in einem div Daten ans Ende anzuhängen.
    im Moment mit:

    var neu= document.createTextNode("<div>neuer text</div>");
    document.getElementById("text").appendChild(neu);

    
    >   
    > das Problem ist allerdings, dass der Text den ich anhängen will HTML Tags beinhaltet und dieser von js als Text um formatiert wird.  
    > D.h. aus <div>neuer text</div> wird &lt;div...  
    > Wie bekomme ich js dazu, dass es mir den HTML Teil auch als HTML anzeigt?  
    >   
    > PS: innerHTML+= ist keine Losung, da damit der gesamte teil neu geladen wird und dies nicht passieren darf.  
    >   
    > Danke, Tim
    
    1. hallo,

      du kannst doch das div Element auch mit js als Objekt erzeugen und dann einhängen so etwa:

      var new_div = document.createElement("div");
      new_div.innerHTL = "neuer text";
      document.getElementById("text").appendChild(new_div);

        
      daran hatte ich auch gedacht aber dann habe ich im Quelltext immer <div><div>neuer text</div></div> stehen weil der neue Text automatisch mit umschließenden div generiert wird.  
      
      
      1. Hi,

        daran hatte ich auch gedacht aber dann habe ich im Quelltext immer <div><div>neuer text</div></div> stehen weil der neue Text automatisch mit umschließenden div generiert wird.

        dann schneide den überflüssigen div-Teil doch raus z.B. mit substr()?
        eleganter wärs natürlich die "generierung" des anzuhängenden textes so zu ändern, dass das div nicht dabei steht.

  2. Hallo Tim,

    var neu= document.createTextNode("<div>neuer text</div>");

    kennst du schon createElement?

    PS: innerHTML+= ist keine Losung, da damit der gesamte teil neu geladen wird und dies nicht passieren darf.

    warum wird "der gesamte teil neu geladen" und was meinst du damit?

    Gruß, Jürgen

    1. Hallo ,

      var neu= document.createTextNode("<div>neuer text</div>");

      kennst du schon createElement?

      ja kenne ich siehe andere Antwort.

      PS: innerHTML+= ist keine Losung, da damit der gesamte teil neu geladen wird und dies nicht passieren darf.

      warum wird "der gesamte teil neu geladen" und was meinst du damit?

      weil in dem Schon vorhandenen Teil Bilder enthalten sind und die immer "blinken" wenn ich innerHTML verändere

      1. Hallo Tim,

        kennst du schon createElement?
        ja kenne ich siehe andere Antwort.

        dann zeig mal, wie du es gemacht hast, am besten mit einem Link zur Beispielseite. Normalerweise erzeugt innerHTML keine DIVs.

        PS: innerHTML+= ist keine Losung, da damit der gesamte teil neu geladen wird und dies nicht passieren darf.

        warum wird "der gesamte teil neu geladen" und was meinst du damit?
        weil in dem Schon vorhandenen Teil Bilder enthalten sind und die immer "blinken" wenn ich innerHTML verändere

        ach so.

        Gruß, Jürgen

    2. warum wird "der gesamte teil neu geladen" und was meinst du damit?

      Er meint vermutlich, dass wenn er per .innerHTML += etwas anhängt, zunächst der gesamte aktuelle innerHTML des Objekts in den Speicher geladen wird und dann auch der komplette innerHTL neu in den div geschrieben wird, was hier wohl zu viel ist und alles langsam wird.