Tobias: element mit id erzeugen

Hallo

Ich versuche über DOM ein Element zu erzeugen und mit einer ID zu versehen.
Probleme macht in der ersten Version, dass das Attribut Id ein read only Attribut ist.

Die Zweite Version erzeugt weder eine Fehlermeldung noch eine Id.

Geht das überhaupt?
Bei dem Erzeugen des elements kann man die Id leider nicht mitgeben(oder?). Und danach nicht setzen?

Oder sehe ich den Wald vor lauter Tags nicht?

Version 1
var tag  = document.createElement(elem);

tag.appendChild(text);
  eval("tag." + id + " = '" + idname"');
  document.getElementById("hierhin").appendChild(tag);

Version 2
var tag  = document.createElement(elem);

tag.appendChild(text);
     var atobj = document.createAttribute("id");
     atobj.nodeValue = idname;
     tag.setAttributeNode(atobj);
     document.getElementById("hierhin").appendChild(tag);

??????????????????????????

  1. Hallo,

    hast du es schon mal mit tag.id='bla'; versucht?

    gruss

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
    1. Hallo,

      hast du es schon mal mit tag.id='bla'; versucht?

      gruss

      das habe ich in der ersten version mit variablen geschrieben
      funktioniert nicht da id ein read-only attribut ist

      1. Hallo,

        bei mir funktioniert das im Mozilla, IE und Netscape.

        gruss

        --
        no strict;
        no warnings;
        Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.
  2. Hallo Tobias,

    Ich versuche über DOM ein Element zu erzeugen und mit einer ID zu versehen.

    Ohne es ausprobiert zu haben:

    /* Element erstellen */
      var myElement = document.createElement("div");

    /* Attribut und gleich dazu den Attributwert setzen */
      myElement.setAttribute("id", "bla");

    /* Element irgendwo einhängen */
      document.getElementsByTagName("body")[0].appendChild(myElement);

    Es gibt sowas wie ein abstraktes Objekt, dessen Methoden für jedes Element
    im HTML- oder XML-DOM-Baum gelten, das node-Objekt. setAttribute ist eine
    Methode davon, siehe auch hier:
    http://selfhtml.teamone.de/javascript/objekte/node.htm

    Tim

    1. Aus dieser Quelle habe ich mein Wissen bezogen,
      allerdings habe ich die Schreibweise mit direkter Attributzuweisung noch nicht versucht.
      Das teste ich doch gleich mal

      Danke fürs erste

    2. /* Attribut und gleich dazu den Attributwert setzen */
        myElement.setAttribute("id", "bla");

      Tim

      Klasse
      Das scheint zu funktionieren
      Vielen Dank