tekki: DIV ohne ID bearbeiten?

Hallo zusammen, kann mir das jemand erläutern?

Fehler: uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLBodyElement.appendChild]"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: http://localhost/mindmap/mindmap.js :: zeigdas :: line 37"  data: no]
(Fehlerkonsole Firefox)

  
//div="xml";  
function zeigdas(div){  
xml=xmlhttp.responseText;  
document.getElementById(div).innerHTML = xml;  
neu = document.getElementById(div).firstChild.nodeValue;  
document.getElementsByTagName('body')[0].appendChild(neu);  
}  

Sinn der Sache, ich bekomme vom Server ein Snippet-HTML, dieses ist durch ein DIV umschlossen. Das DIV hat zwar eine ID, diese weiß ich aber nicht. Dieses DIV soll nun innerhalb des <body></body> geschoben werden.

Dafakto soll aus folgendem:

  
<body>  
  <div id="schonda">Inhalt</div>  
  <div id=xml>  
    <div id="keineahnung">Neuer Inhalt</div>  
  </div>  
</body>  

das hier werden:

  
<body>  
  <div id="schonda">Inhalt</div>  
  <div id="keineahnung">Neuer Inhalt</div>  
  <div id=xml></div>  
</body>  

aber ohne die ID "keineahnung" zu kennen.

Bin ich auf m Holzweg?

  1. aber ohne die ID "keineahnung" zu kennen.

    Du weißt aber, dass es ein div-Element ist, welches das einzige Kind vom div-Element mit der id "xml" ist?

    getElementsByTagName kennst du ja bereits - wo ist das Problem? :) alternativ kannst du auch mit childNodes arbeiten.

  2. Hi,

    Hallo zusammen, kann mir das jemand erläutern?

    Zum navigieren im DOM, auch wenn man eine konkrete Element-ID vielleicht nicht kennt, hast du ja bereits eine Antwort.

    Zu diesem Fehler:

    Fehler: uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLBodyElement.appendChild]"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: http://localhost/mindmap/mindmap.js :: zeigdas :: line 37"  data: no]
    (Fehlerkonsole Firefox)

    //div="xml";

    function zeigdas(div){
    xml=xmlhttp.responseText;
    document.getElementById(div).innerHTML = xml;
    neu = document.getElementById(div).firstChild.nodeValue;
    document.getElementsByTagName('body')[0].appendChild(neu);
    }

      
    Selbst wenn es sich beim firstChild nicht um einen reinen Whitespace-Textknoten handeln sollte (was aber wahrscheinlich sein dürfte, wenn das XML-Dokument entsprechend „formatiert“ ist) – den [nodeValue](http://de.selfhtml.org/javascript/objekte/node.htm#node_value) per appendChild einfügen, geht ganz sicher nicht, denn der ist je nachdem, um was für eine Art von Node es sich beim firstChild handelt, entweder reiner Text (in String-Form), ein Attributwert, oder bei einem HTML-Element-Node null.  
    Das sind alles keine Werte, die sich per appendChild einfügen lassen - das verlangt einen „richtigen“ Elementknoten.  
      
    MfG ChrisB  
      
    
    -- 
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?