createTextNode
Mssmar
- javascript
Hi,
Ich rufe die untenstehende Funktion auf um in einem DIV eine Fehlermedung rauszugeben.
Das Problem ist, das die in FFOx nicht funktioniert und ich kann iregendwie den Fehler nicht sehen bzw. finden.
function errorMessage() {
var TxtNode = document.createTextNode("Fehler Fehler Fehler");
var ReplaceNode = Container.childNodes(0);
ReplaceNode.replaceNode(TxtNode);
Container.style.background ='#ff0000';
Container.style.width ='200px';
}
<div id="Container"><p></p></div>
Die Firefox-Kosole gibt folgendes aus:
"Fehler: TxtNode.childNodes is not a function"
Ich bin für jede Hilfe sehr dankbar.
Gruß
Messmar
Hi,
"Fehler: TxtNode.childNodes is not a function"
gehört der Fehler genau so zu obigem Code? Ich hätte Container.childNodes is not a function erwartet:
var ReplaceNode = Container.childNodes(0);
Du rufst gerade die Methode childNodes mit Parameter 0 auf - die gibts nicht. childNodes ist eine Collection, wenn du auf ihre Elemente zugreifen willst, dann musst du eckige Klammern benutzen, wie dir auch das entsprechende SELFHTML-Beispiel zeigt.
MfG
Rouven
Hi,
danke schon mal.
"Fehler: TxtNode.childNodes is not a function"
gehört der Fehler genau so zu obigem Code? Ich hätte Container.childNodes is not a function erwartet:
ja.
Aber ich muss dazu meinen Code korregieren und zwar anstelle von:
oSpan.childNodes(0);
muss es heißen:
document.getElementById('oSpan').childNodes(0);
var ReplaceNode = Container.childNodes(0);
Du rufst gerade die Methode childNodes mit Parameter 0 auf - die gibts nicht. childNodes ist eine Collection, wenn du auf ihre Elemente zugreifen willst, dann musst du eckige Klammern benutzen [...]
Ich habe es angepasst, aber ich bekomme jetzt folgendes:
"Fehler: oReplaceNode.replaceNode has no properties"
Irgendeine Idee?
GRuß
Messmar
"Fehler: oReplaceNode.replaceNode has no properties"
Irgendeine Idee?
Ja, oder eher nein. Was ist replaceNode? Ich hätte nur replaceChild im Angebot. Könnte es sein, dass das eine neue DOM-Version ist?
MfG
Rouven
Hi,
[...]Könnte es sein, dass das eine neue DOM-Version ist?
Das habe ich mi Netz gefunden. Für replace:
Gruß
Messmar
Hallo Mssmar.
Diese Seite bestätigt meine Vermutung: du arbeitest ausschließlich mit document.all und verschaffst dir damit selbst nur Schwierigkeiten.
Du solltest besser das echte DOM nutzen, wozu unter anderem auch das http://de.selfhtml.org/javascript/objekte/node.htm@title=node-Objekt und seine Methoden gehört.
Einen schönen Sonntag noch.
Gruß, Ashura
Hi,
Das habe ich mi Netz gefunden. Für replace:
replaceNode
solange man es unter http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 nicht findet, kann Dir völlig egal sein, was Sekundärliteratur behauptet.
Cheatah
Hi,
lol, genau da bin ich gerade gelandet als ich nach deinem Post den Befehl nachgeschlagen habe...
Diese Seite sagt, dass das eine Microsoft-spezifische DOM-Erweiterung ist.
MfG
Rouven
Hi All,
[...]Ich hätte nur replaceChild im Angebot. [...]
Das mit dem replaceChild funktioniert auf jeden Fall.
Danke und Gruß
Messmar
Hallo,
var ReplaceNode = Container.childNodes(0);
"Fehler: TxtNode.childNodes is not a function"
da hat er Recht, der Firefox. Mit der obigen Anweisung versuchst du ja schließlich, TxtNode.childNodes() als Funktion aufzurufen. Das geht natürlich nicht.
Meintest du stattdessen vielleicht die Indizierung mit eckigen[] Klammern?
So long,
Martin
Hallo,
Meintest du stattdessen vielleicht die Indizierung mit eckigen[] Klammern?
Ja, das stimmt. Ups
Ich versuche auf das erste Element des Div zuzugreifen und zwar auf das
das Paragrph-Element: <p></p>
Gruß
Mesmar
Ja, das stimmt. Ups
Ich versuche auf das erste Element des Div zuzugreifen und zwar auf das
das Paragrph-Element:<p></p>
Und du bist sicher das immer der erste Knoten das p Tag ist?
Nein bist du nicht, warum nimmst du nicht [object].getElementsByTagName('p'); dann kannst du sicher sein, dass du das erste p Element erwischst.
Struppi.
Hallo Mssmar.
function errorMessage() {
var TxtNode = document.createTextNode("Fehler Fehler Fehler");
var ReplaceNode = Container.childNodes(0);
ReplaceNode.replaceNode(TxtNode);
Container.style.background ='#ff0000';
Container.style.width ='200px';
}
>
> ~~~html
<div id="Container"><p></p></div>
>
Dir ist bewusst, dass du hier zum Zugriff auf das div-Element http://de.selfhtml.org/javascript/objekte/all.htm@title=document.all verwendest?
Du solltest http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById nutzen, um dies zu bewerkstelligen.
Einen schönen Sonntag noch.
Gruß, Ashura
Hallo Mssmar.
Dir ist bewusst, dass du hier zum Zugriff auf das div-Element http://de.selfhtml.org/javascript/objekte/all.htm@title=document.all verwendest?
Du solltest http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById nutzen, um dies zu bewerkstelligen.
Jau, du hast Recht. Das habe ich aber in dem nachfolgenden Posting auch hier korregiert.
GRuß
Messmar