Lily: HTML in createTextNode

Hi,
ich möchte ein mit Javascript einen Link in ein bestimmen Div einfügen.

Das habe ich so probiert:

  
  
var Textknoten = document.createElement("a");  
Textknoten.createTextNode("<a onClick=\"bildloeschen(div2);return false\">Bild entfernen</a>");  
  
document.getElementById(div2).replaceChild(Textknoten, document.getElementById(div2).firstChild);

Wenn ich das Script ausführe wird der neue Text mit Link leider nicht eingefügt.

Habt ihr eine Idee warum das so ist?

Danke

  1. Das habe ich so probiert:

    probieren ist immer eine heikle Sache, warum hast du nicht nachgelsen wie es funktioniert? z.b. bei selfhtml?

    Wenn ich das Script ausführe wird der neue Text mit Link leider nicht eingefügt.

    Habt ihr eine Idee warum das so ist?

    Weil du die Fehlermelduing ignorierst? Fals du FF unter Menü: Extras > Fehlerkonsole

    Struppi.

  2. Hallo Lily,

    var Textknoten = document.createElement("a");
    Textknoten.createTextNode("<a onClick="bildloeschen(div2);return false">Bild entfernen</a>");

      
    Du erzeugst - richtigerweise - zunächst das A-Element und speicherst es in der Referenz Textknoten. Weitere Attribute fügst Du durch "Punkt-Verknüpfung" hinzu. Bei einem Link könnte das zum Beispiel die URL sein:  
    ~~~javascript
      
    Textknoten.href = "http://example.org";
    

    Der Linktext ist selbst ein Knoten, den Du dem Elternelement zuweisen musst.

      
    var Linktext = document.createTextNode("Bild entfernen");  
    Textknoten.appendChild(Linktext);
    

    In Deinem Fall würde ich jedoch nicht einen Link nehmen, sondern ein SPAN oder ähnliches, da es kein Linkziel gibt. Ein SPAN kann auch ein Event an sich binden. Beachte aber, dass diese immer klein geschrieben werden in JavaScript:

      
    var spanEl = document.createElement("span");  
    spanEl.onclick = function(e) {  
                        bildloeschen(div2);  
                     }
    

    Mit freundlichem Gruß
    Micha