Moin!
if (Zielobjekt=document.getElementById("ID").firstChild) {Zielobjekt.nodeValue=Text;}
else {alert("Zielobjekt nicht gefunden!");}ich will nicht extra die existenz des elements überprüfen und dann hinterher die variable setzen und dieser den text zuweisen. ich will, dass er den text nur ändert, wenn er der variable das objekt zuweisen konnte. rein der effizienz zuliebe.
Tja, Javascript ist nicht PHP, sondern weit davon entfernt. Dir wird nichts anderes übrig bleiben, als die typische Javascript-Methode anzuwenden.
ich habe bis jetzt keine möglichkeit gefunden, die objektzuweisung auf erfolg zu prüfen. wenn das objekt nicht existiert, meckert javascript rum, weil es eben nicht existiert. wenn es existiert, funktioniert jedoch alles wunderbar.
Du willst wissen, ob es document.getElementById("ID").firstChild gibt, damit du dort nodeValue=Text; machen kannst.
Um Fehler zu vermeiden, musst du jedes Objekt auf dem Weg zum Ziel auf Existenz prüfen. Ist leider so. Aber es ist empfehlenswert, Prüfungen allgemeiner Objekte in Variablen zu speichern - das bringt Performance.
Im Prinzip gehts so:
if (document.getElementById)
{
if (document.getElementById("ID").firstChild)
{
if (document.getElementById("ID").firstChild.nodeValue)
{
document.getElementById("ID").firstChild.nodeValue = text;
}
}
}
Das kann man natürlich vereinfachen, indem gewisse Dinge einfach als vorhanden angenommen werden (der Preis ist, dass man bei gewissen Browsern falsch liegen kann).
Außerdem kann man Performance gewinnen, indem nicht immer wieder dieselben Objektwege neu ausgeknobelt werden müssen. Vor allem getElementById() soll sehr zeitaufwendig sein. Deshalb kann man zwischenspeichern.
if (document.getElementById)
{
element = document.getElementById("ID");
if (element.firstChild)
{
elementfc = element.firstChild;
if (elementfc.nodeValue)
{
elementfc.nodeValue = text;
}
}
}
Nur so als Beispiel.
- Sven Rautenberg
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)