• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

getElementsByTagName Problem

Hallo Leute,

Ich wollte gerne in meinem Programm ein Element erstellen, das es in HTML gar nicht gibt (card). Dann wollte ich diesem Element einen Text hinzufügen & card in den Body einfügen. Bloß schaffe ich es nicht, etwas in den Body einzufügen. Ich habe es auch schon mit body[0].appendChild(card); versucht, um auf das erste Bodyelement im Quelltext zuzugreifen. Hier der Quellcode:

Code:
          var body = document.getElementsByTagName("body");
          var card = document.createElement("card");
          var txt = document.createTextNode("Hello, World!");

          card.appendChild(txt);
          body.appendChild(card);

Wäre für eure Hilfe dankbar
Grüsse, Webdesigner95
 
Warum möchtest du ein neues Element erfinden?

Wenn es sich um Textinhalt handelt wäre ein p-Tag passender. Mit einer ID lässt sich dann leicht auf das Element zugreifen.
HTML:
<p id="card">Textinhalt</p>
Javascript:
Code:
var card = document.getElementById("card");
 
document.getElementsByTagName() gibt eine NodeList zurück; ergo: document.getElementsByTagName("body")[0] oder document.getElementsByTagName("body").item(0). document.body geht aber einfacher.
 
Hier der Quellcode:

Code:
          var body = document.getElementsByTagName("body");
          var card = document.createElement("card");
          var txt = document.createTextNode("Hello, World!");

          card.appendChild(txt);
          body.appendChild(card);

Wäre für eure Hilfe dankbar
Schau mal in die Fehlerkonsole, da fndest du sofort Hilfe, denn dieser Code erzeugt eine Fehlermeldung.
 
Bei mir lautet die Fehlermeldung: „body.appendChild is not a function“

Der Grund dafür wurde schon mehrfach genannt.

Zeig vielleicht mal den gesamten Code.
 
card();
card = function(){
var body = document.getElementsByTagName('body').item(0);
var card = document.createElement("card");
var txt = document.createTextNode("Hello, World!");

card.appendChild(txt);
body.appendChild(card);


}


Wenn ich diesen Code ausführe, bekomme ich in Chrome die Meldung
Uncaught TypeError: Cannot call method 'appendChild' of null

Und in Firebug (Firefox) die Meldung
body is null body.appendChild(card);
 
Zum Zeitpunkt der Ausführung ist das DOM vermutlich noch nicht geladen.

Code:
window.onload = function ()
{
    card = function(){
        var body = document.getElementsByTagName('body').item(0);
        var card = document.createElement("card");
        var txt = document.createTextNode("Hello, World!");

        card.appendChild(txt);
        body.appendChild(card);
    };
    card();
};
 
Code:
card = function(){
Warum das ganze? Um globale zu vermeiden? Wir sind innerhalb einer Funktion und du implizierst sogar noch eine Globale, ohne ein „var“.
 
Zurück
Oben