Klara: bei ein Knoten ein Stylke-Attribut ändern

Hi!

function X(id, color){  
  var node = document.getElementById('X'+id).firstChild;  
  while (node != null){  
    node.style.backgroundColor = color;  
    node = node.nextSibling;  
  }  
}

der HTML-Code sieht ungefähr so aus

<tr id="X1">  
  <td class="y">...</td>  
  <td class="y">...</td>  
  <td>...</td>  
  ...  
</tr>

bei jeder Spalte (td) soll die Hintergrundfarbe geändert werden

der Code läuft im IE7. Bei Firefox kommt die Meldung "node.style has no properties". Bei Opera kommt nicht mal eine Fehlermeldung in der Fehlerkonsole.

Wie kann ich die Hintergrundfarbe noch ändern?

Danke!
Klara

  1. Hi,

    var node = document.getElementById('X'+id).firstChild;

    [...]

    <tr id="X1">
      <td class="y">...</td>
    der Code läuft im IE7. Bei Firefox kommt die Meldung "node.style has no properties".

    nun ja, die Whitespace-Node zwischen <tr> und <td> hat ja auch keine Properties. Dass der IE bis heute es nicht geschafft hat, diese zu erkennen, ist verdammt traurig.

    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. Lieber Cheatah,

      nun ja, die Whitespace-Node zwischen <tr> und <td> hat ja auch keine Properties.

      ... und dann wäre noch der Hinweis gut gewesen, dass man daher darauf prüfen muss, ob es sich bei node.nextSibling um eine Textnode oder ein HTML-Element handelt: Zusätzlich auf node.tagName prüfen!

      Dass der IE bis heute es nicht geschafft hat, diese zu erkennen, ist verdammt traurig.

      Ach was "traurig"... da fehlen einem die salonfähigen Worte für!!

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      --
      ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      1. Hi,

        ... und dann wäre noch der Hinweis gut gewesen, dass man daher darauf prüfen muss, ob es sich bei node.nextSibling um eine Textnode oder ein HTML-Element handelt: Zusätzlich auf node.tagName prüfen!

        Und dazu wiederum wäre noch anzumerken, dass ein Kommentar im IE den tagNamen "!"  und nicht etwa null ergibt! *Arrrgs*

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Yerf!

          Und dazu wiederum wäre noch anzumerken, dass ein Kommentar im IE den tagNamen "!"  und nicht etwa null ergibt! *Arrrgs*

          Ehm... also das hätte ich jetzt als korrekt erwartet, oder etwa nicht?

          Gruß,

          Harlequin

          --
          <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
      2. Hellihello Menschen,

        ... und dann wäre noch der Hinweis gut gewesen, dass man daher darauf prüfen muss, ob es sich bei node.nextSibling um eine Textnode oder ein HTML-Element handelt: Zusätzlich auf node.tagName prüfen!

        Ist die Textnode weiblich? Und was ist mit nodeType http://de.selfhtml.org/javascript/objekte/node.htm#node_type?

        Ach was "traurig"... da fehlen einem die salonfähigen Worte für!!

        Ist doch irgendwie typisch, dachte ich.

        Dank und Gruß,

        frankx

        --
        tryin to multitain  - Globus = Planet != Welt
      3. @@Felix Riesterer:

        ... ob es sich bei node.nextSibling um eine Textnode oder ein HTML-Element handelt: Zusätzlich auf node.tagName prüfen!

        tagName?? Ich würde einfach den nodeType prüfen. Erspart auch die doppelte Überprüfung auf 'td' und 'th'.

        Live long and prosper,
        Gunnar

        --
        „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    2. Hi,

      var node = document.getElementById('X'+id).firstChild;
      [...]
      <tr id="X1">
        <td class="y">...</td>
      der Code läuft im IE7. Bei Firefox kommt die Meldung "node.style has no properties".

      nun ja, die Whitespace-Node zwischen <tr> und <td> hat ja auch keine Properties.

      argh.... wieder darauf reingefallen :-\ so etwas ähnliches hatte ich schon einmal ...

      Danke!

      Klara