Trautmann: mit firstChild daten erheben

Hiho

ich möchte den Inhalt eines <td>-Elements lesen und habe das bis jetzt mit firstChild.data gemacht.
Bis jetzt ist aber nur ein Wort im <td>-Element gestanden welches ohne Probleme ausgelesen werden konnte.
Jetzt hab ich haber ein <span>-Element eingefügt (um die Schriftfarbe zu ändern) und wenn ich jetzt mit firstChild.data abfrage kommt immer nur undefined(laut firebug).

Was mache ich falsch? Ich werd aus der Erklärung von firstChild hier auch ned wirklich schlau...

also hier das beispiel so ungf.:

  
<td id="3">hallo</td>  
...  
var inhalt =document.getElementById(3).firstChild.data;  
  
//funktioniert  
  
<td id="4"><span style='color:White'>hallo</span></td>  
...  
var inhalt =document.getElementById(4).firstChild.data;  
  
//funktioniert nicht  

danke schon jetzt

mfg

Trautmann

  1. In diesem Fall musst Du entweder alle Kinder parsen oder benutzt innerHTML.

    Gruß, LX

    --
    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: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    Jetzt hab ich haber ein <span>-Element eingefügt (um die Schriftfarbe zu ändern) und wenn ich jetzt mit firstChild.data abfrage kommt immer nur undefined(laut firebug).

    Was mache ich falsch?

    Du fragst die .data-Eigenschaft eines nicht-Textknotens ab - da darf also nur undefined zurueckkommen.

    Ich werd aus der Erklärung von firstChild hier auch ned wirklich schlau...

    In wie fern denn bitte nicht?

    <td id="4"><span style='color:White'>hallo</span></td>
    ...
    var inhalt =document.getElementById(4).firstChild.data;

    //funktioniert nicht

    Doch, "funktioniert", im Sinne von "works as designed".

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Du fragst die .data-Eigenschaft eines nicht-Textknotens ab - da darf also nur undefined zurueckkommen.

      also soll ich die .data-Eigenschaft vom <span> abfragen?
      oder gibt es eine Möglichkeit es über <td> herauszubekommen.

      1. Hi,

        Du fragst die .data-Eigenschaft eines nicht-Textknotens ab - da darf also nur undefined zurueckkommen.

        also soll ich die .data-Eigenschaft vom <span> abfragen?

        Nein, das machst du ja derzeit bereits - und es liefert, wie erklaert, natuerlich nicht das gewuenschte.

        oder gibt es eine Möglichkeit es über <td> herauszubekommen.

        Viele Wege fuehren nach Rom.

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
      2. Hi,

        also soll ich die .data-Eigenschaft vom <span> abfragen?

        nein, die von td.getElementsByTagName("span")[0].firstChild.data

        denn der Text ist nun das erste Kind des span Elementes, vorausgesetzt es gibt keinen Zeilenumbruch dazwischen, den IE als auch als node interpretieren würde.

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
  3. Hi,

    Jetzt hab ich haber ein <span>-Element eingefügt (um die Schriftfarbe zu ändern) und wenn ich jetzt mit firstChild.data abfrage kommt immer nur undefined(laut firebug).

    zwischen Dir und dem first.Child steht nun ja auch ein span - dessen first.Child der gewünschte Text ist. Übrigens Vorsicht bei dieser Vorgehensweise, denn in manchen Browsern sind auch Zeilenumbrüche nodes, daher solltest Du besser den span referenzieren und innerHTML auslesen.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.