firstChild
Dani
- javascript
0 Felix Riesterer1 Cheatah0 Dani
0 rfb
Hallo,
folgendes Konstrukt und eine vielleicht etwas merkwürdige Frage dazu:
<div id="ebene">
<span id="eins">1</span>
<span id="zwei">2</span>
</div>
In einem DIV-Bereich mit der ID "ebene" befinden sich zwei SPAN-Bereiche. Der Wert des ersten SPAN mit der ID "eins" soll ausgelesen werden.
Der entscheidende Auszug aus dem Script lautet:
wert = ebene.childNodes[0].firstChild.text;
oder
wert = ebene.firstChild.firstChild.text;
Beide Schreibweisen führen zwar zum Ziel und lesen den Wert "1" aus - die zweite Schreibweise mit "firstChild.firstChild" iritiert mich aber irgendwie ... kann ich das so schreiben ?
Mfg Dani
Lieber Dani,
die zweite Schreibweise mit "firstChild.firstChild" iritiert mich aber irgendwie ... kann ich das so schreiben ?
ja, das ist korrekte Java(Script)-Schreibweise. Du notierst korrekt ein Objekt mit seinen Unterobjekten als Eigenschaften.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hi,
<div id="ebene">
<span id="eins">1</span>
<span id="zwei">2</span></div>
In einem DIV-Bereich mit der ID "ebene" befinden sich zwei SPAN-Bereiche. Der Wert des ersten SPAN mit der ID "eins" soll ausgelesen werden.
warum liest Du dann die Textnode zwischen <div id="ebene"> und <span id="eins"> aus und versuchst, auf dessen Kinder zuzugreifen, die eine Textnode nicht hat?
Beide Schreibweisen führen zwar zum Ziel
Du testest offenbar primär mit dem IE. Hat es sich noch nicht bis zu Dir rumgesprochen, dass das grober Unfug ist?
die zweite Schreibweise mit "firstChild.firstChild" iritiert mich aber irgendwie ...
Warum? Das erste Kind einer Node heißt firstChild. Es ist das erste Element der childNodes-Collection, also das mit dem Index 0.
Cheatah
Hi,
<div id="ebene">
<span id="eins">1</span>
<span id="zwei">2</span></div>
In einem DIV-Bereich mit der ID "ebene" befinden sich zwei SPAN-Bereiche. Der Wert des ersten SPAN mit der ID "eins" soll ausgelesen werden.
warum liest Du dann die Textnode zwischen <div id="ebene"> und <span id="eins"> aus und versuchst, auf dessen Kinder zuzugreifen, die eine Textnode nicht hat?
Das sich durch einen Umbruch etc. ein Textknoten bildet, weiß ich schon ...
Beide Schreibweisen führen zwar zum Ziel
Du testest offenbar primär mit dem IE. Hat es sich noch nicht bis zu Dir rumgesprochen, dass das grober Unfug ist?
Nein.Doch. Ich teste praktisch ausschließlich mit Firefox, bei dem beide Schreibweisen ja funktionieren - ebenso im IE und Opera.
die zweite Schreibweise mit "firstChild.firstChild" iritiert mich aber irgendwie ...
Warum? Das erste Kind einer Node heißt firstChild. Es ist das erste Element der childNodes-Collection, also das mit dem Index 0.
Cheatah
Moin
wert = ebene.childNodes[0].firstChild.text;
oder
wert = ebene.firstChild.firstChild.text;
gibt es eine Eigenschaft text beim node-Objekt?
Gruß
rfb
Hallo rfb.
wert = ebene.childNodes[0].firstChild.text;
oder
wert = ebene.firstChild.firstChild.text;
gibt es eine Eigenschaft text beim node-Objekt?
Wenn „ebene.firstChild.firstChild“ ein HTML-Elementobjekt ist, was über eine solche Eigenschaft verfügt, klar.
Einen schönen Mittwoch noch.
Gruß, Mathias