Hintergrung mit JS ändern
Thom
- css
Hallo,
ich wollte mit
document.getElementsByTagName("body").style.backgroundColor = "#333333"
die Hintergrundfarbe dynamisch zu ändern. Das geht aber nicht.
document.getElementsByTagName("body") gibt mir zwar eine HTMLObject, aber mit dem style geht es dann nicht weiter.
Wie macht man es richtig?
ich wollte mit
document.getElementsByTagName("body").style.backgroundColor = "#333333"
die Hintergrundfarbe dynamisch zu ändern. Das geht aber nicht.
Wohin soll "es" auch gehen?
Eine sinnvolle Fehlerbeschreibung wäre sinnvoll, denn das obige enthält keinen Fehler. (du kannst stattt getElement... auch einfach document.body verwenden)
Struppi.
document.getElementsByTagName("body").style.backgroundColor = "#333333"
Eine sinnvolle Fehlerbeschreibung wäre sinnvoll, denn das obige enthält keinen Fehler.
Falsch es entält einen Fehler, hast du mal nachgeschaut was getElement_s_ByTagName() zurückgibt?
Struppi.
Hallo Struppi.
document.getElementsByTagName("body").style.backgroundColor = "#333333"
Eine sinnvolle Fehlerbeschreibung wäre sinnvoll, denn das obige enthält keinen Fehler.
Falsch es entält einen Fehler, hast du mal nachgeschaut was getElement_s_ByTagName() zurückgibt?
Stehe ich gerade auf dem Schlauch, oder warum verstehe ich nicht, warum du auf einen häufigen Fehler hinweist, welcher im Code des OP jedoch nicht enthalten ist?
Einen schönen Dienstag noch.
Gruß, Ashura
document.getElementsByTagName("body").style.backgroundColor = "#333333"
Eine sinnvolle Fehlerbeschreibung wäre sinnvoll, denn das obige enthält keinen Fehler.
Falsch es entält einen Fehler, hast du mal nachgeschaut was getElement_s_ByTagName() zurückgibt?
Stehe ich gerade auf dem Schlauch, oder warum verstehe ich nicht, warum du auf einen häufigen Fehler hinweist, welcher im Code des OP jedoch nicht enthalten ist?
Ja Schlauch ;-)
Die getElements.. Funktionen liefern immer eine Liste der Elemente.
Struppi.
Hallo Struppi.
Ja Schlauch ;-)
Die getElements.. Funktionen liefern immer eine Liste der Elemente.
Darauf hatte ich (deinem erfolgreichen Ablenkunsmanöver folgend) nicht mehr geachtet.
Einen schönen Dienstag noch.
Gruß, Ashura
Hallo Ashura
Stehe ich gerade auf dem Schlauch, oder warum verstehe ich nicht, warum du auf einen häufigen Fehler hinweist, welcher im Code des OP jedoch nicht enthalten ist?
Wieso nicht enthalten? document.getElementsBytagName("body") gibt doch ein array zurück - oder? Dann auf die Eigenschaft style zuzugreifen sollte nicht funktionieren (es sei denn, es gibt eine Konvention, dass falls das array nur ein Element enthält auch ohne Index auf dieses zugegriffen werden kann - falls dem so ist, bitte ich um Hinweis auf eine Quelle)
liebe Grüße mbr
P.S.: Ich hoffe, das kam jetzt nicht als arrogant rüber. Da ich weiss, dass du ziemlich viel Ahnung von der Materie hast, wollte ich einfach bloss fragen, ob ich evtl. etwas übersehen habe - zumal ich dem OP den Tip gegeben habe, mal document.getElementsBytagName("body")[0].style="#333333"; zu probieren - ohne selbst zu testen, ob das den Fehler behebt *schäm*
Stehe ich gerade auf dem Schlauch, oder warum verstehe ich nicht, warum du auf einen häufigen Fehler hinweist, welcher im Code des OP jedoch nicht enthalten ist?
Wieso nicht enthalten? document.getElementsBytagName("body") gibt doch ein array zurück - oder? Dann auf die Eigenschaft style zuzugreifen sollte nicht funktionieren (es sei denn, es gibt eine Konvention, dass falls das array nur ein Element enthält auch ohne Index auf dieses zugegriffen werden kann - falls dem so ist, bitte ich um Hinweis auf eine Quelle)
Jetzt reden wir aber aneinander vorbei.
Ashura meinte den Fehler des vergessenen 's' bei z.b. getElementsByTagName, der häufig gemacht wird, wenn die Leute nicht Wissen wie sie an eine sinnvolle Fehlermeldung kommen.
Struppi.
Jetzt reden wir aber aneinander vorbei.
Stimmt ;-)
Ashura meinte den Fehler des vergessenen 's' bei z.b. getElementsByTagName, der häufig gemacht wird, wenn die Leute nicht Wissen wie sie an eine sinnvolle Fehlermeldung kommen.
Ja, aber das "s" war ja selbst beim OP eindeutig vorhanden. nur hat er eben vergessen - oder nicht gewußt? - dass er einen array zurückbekommt.
Übrigens muss ich hier mal loswerden, dass ich diese Schreibweisen (getElementsByTagName, getElementsByName, getElementById) allgemein ziemlich gruselig finde. Ich möchte nicht wissen, wie oft ich mich da schon beim "s" und vor allem bei der Groß/Kleinschreibung verhauen habe - gerade im Antwort-Posting für Ashura schon wieder. ich meine: ich erkenne ja die Logik, jedes neue Wort eben groß zu schreiben, aber trotzdem finde ich es extrem fehlerträchtig. So, genug gejammert.
liebe Grüße mbr
Hallo,
Übrigens muss ich hier mal loswerden, dass ich diese Schreibweisen (getElementsByTagName, getElementsByName, getElementById) allgemein ziemlich gruselig finde.
danke, ich auch.
ich erkenne ja die Logik, jedes neue Wort eben groß zu schreiben, aber trotzdem finde ich es extrem fehlerträchtig.
Richtig - vor allem, weil das _erste_ Wort, bei dem man es am ehesten erwarten würde, gerade _nicht_ groß geschrieben ist. Das finde ich widersinnig, und mit dieser bescheuerten Konvention bin ich auch schon öfter mal auf die Nase gefallen.
Schönen Abend noch,
Martin
Hallo mbr.
Wieso nicht enthalten? document.getElementsBytagName("body") gibt doch ein array zurück - oder?
Nö. Aber document.getElementsBy_T_agName("body") tut das.
Dann auf die Eigenschaft style zuzugreifen sollte nicht funktionieren (es sei denn, es gibt eine Konvention, dass falls das array nur ein Element enthält auch ohne Index auf dieses zugegriffen werden kann - falls dem so ist, bitte ich um Hinweis auf eine Quelle)
Nein, eine solche Konvention gibt es nicht und du hast vollkommen Recht.
Struppis Hervorhebung des „s“ hat mich von diesem Fakt abgelenkt.
P.S.: Ich hoffe, das kam jetzt nicht als arrogant rüber.
Absolut nicht.
Da ich weiss, dass du ziemlich viel Ahnung von der Materie hast, wollte ich einfach bloss fragen, ob ich evtl. etwas übersehen habe
Hast du nicht; ich habe.
Einen schönen Dienstag noch.
Gruß, Ashura
Hi
document.getElementsByTagName("body").style.backgroundColor = "#333333"
die Hintergrundfarbe dynamisch zu ändern. Das geht aber nicht.
ich schätze, document.getElementsByTagName gibt dir kein HTMLObject, sondern ein Array zurück. Du müßtest mit
document.getElementsByTagName("body")[0].style.backgroundColor = "#333333";
weiterkommen. Es mag auf den ersten Blick etwas verwirren, dass du ein Array wiederbekommst, obwohl es doch nur einen body-tag gibt (geben kann!) aber die Funktion getElementsByTagName() kann ja auch auf andere tags angewendet werden, von denen es mehrere gibt. Deswegen heißt es ja auch Elements und nicht Element.
Liebe Grüße mbr