Dani: firstChild

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

  1. 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.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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

  3. Moin

    wert = ebene.childNodes[0].firstChild.text;

    oder

    wert = ebene.firstChild.firstChild.text;

    gibt es eine Eigenschaft text beim node-Objekt?

    Gruß
    rfb

    --
    Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
    (Galileo Galilei)
    1. 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

      --
      ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
      debian/rules