Christian Wansart: nodeValue von body

Guten Morgen,

ich wollte ein Element, welches ich mit createElement erstellt habe, an body anfügen. Leider klappt es nicht so wirklich. Ich habe es so versucht:

  descInfoAttr = descInfo.createAttribute("id");  
  descInfoAttr.nodeValue = "DescriptionInfoBox";  
  descInfo.setAttributeNode(descInfoAttr);  
  
  descInfoText = document.createTextNode("Irgendein Text");  
  descInfo.appendChild(descInfoText);  
  
  document.body.appendChild(descInfo);

Also Firebug meldet keinen Fehler im Javascript selber, aber angezeigt wird auch nicht...
Ich habe daher mal zum Text versucht, den Inhalt von document.body auszugeben, um zu schauen, ob man mit body überhaupt etwas anstellen kann:
  ~~~javascript alert(document.body.firstChild.data);
  alert(document.body.firstChild.nodeValue);
  alert(document.body.childNodes[0].data);
  alert(document.body.childNodes[0].nodeValue);

Aber keins davon funktioniert... Nur innerHTML -- was ich aber nicht verwenden möchte.  
  
Was stimmt denn nun mit meinem JS nicht? Wie stelle ich es an, dass das Element an Body angefügt wird?  
  
  
Danke,  
Gruß  
Christian Wansart
  1. descInfoAttr = descInfo.createAttribute("id");

    Das dürfte überflüssig sein, jedes HTML Element hat bereits das Attribut id, d.h. es besteht keine notwendigkeit dies zu erzeugen.

    document.body.appendChild(descInfo);

      
    genauso sollte es funktionieren.  
      
    Struppi.
    
  2. Hi,

    document.body.appendChild(descInfo);

    [...]

    alert(document.body.firstChild.data);

    [...]

    alert(document.body.childNodes[0].data);

    hast Du Dir mal den Begriff "append" übersetzen lassen und überlegt, ob man das Appendierte am Anfang einer Liste suchen sollte?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hi,

    descInfoAttr = descInfo.createAttribute("id");

    descInfoAttr.nodeValue = "DescriptionInfoBox";
      descInfo.setAttributeNode(descInfoAttr);

    descInfoText = document.createTextNode("Irgendein Text");
      descInfo.appendChild(descInfoText);

    document.body.appendChild(descInfo);

      
    Wo wird denn das Element erzeugt?  
      
    
    > Ich habe daher mal zum Text versucht, den Inhalt von document.body auszugeben, um zu schauen, ob man mit body überhaupt etwas anstellen kann:  
      
    Nein, hast Du nicht.  
      
    
    >   ~~~javascript
    
    alert(document.body.firstChild.data);  
    
    >   alert(document.body.firstChild.nodeValue);  
    >   alert(document.body.childNodes[0].data);  
    >   alert(document.body.childNodes[0].nodeValue);
    
    

    Das erste _Kind_ (egal ob über firstChild oder über childNodes angesprochen) dürfte der Whitespace zwischen dem > des öffnenden body-Tags und dem < des öffnenden Tags des ersten _Elementes_ (oder ggf. Kommentars) im body sein.

    Aber keins davon funktioniert...

    Was heißt das? Der alert wird nicht angezeigt? Oder zeigt er nur den Whitespace?

    Nur innerHTML -- was ich aber nicht verwenden möchte.

    Wessen innerHTML? von body oder von dessen ersten Kind?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.