henningw: Leere Tabllenfelder -> andere farbe

Hi,

Also ich möchte, dass leere Zellen einer Tabelle eine andere Hintergrundfarbe bekommen.
Mit leer mein ich, dass es praktisch <td></td> im HTML code ist.

Mein Code funktioniert aber nur im IE, nicht bei Mozilla, und wenn sich nur ein Bild oder ein Link im Feld befinden funktioniert es auch nicht.

CSS:

table.ausgabe td.emptycell { background-color: #EEEEEE; }  

HTML:

  
<form name="rowsDeleteForm"> <table class="ausgabe"> <tr> ......... </tr> </table>  
[

JS:

  
window.onload=emptycells;  
function emptycells(){  
var lines = document.rowsDeleteForm.getElementsByTagName('td');  
for ( var i = 0; i < lines.length; i++ )  
{  
  dest = true;  
  if (lines[i].hasChildNodes())  
    {var children = lines[i].childNodes;  
    for (var k = 0; k < children.length; k++){  
      if (children[k].nodeType == 3){  
        if (children[k].data != "" )  
          {dest = false; }  
        }  
      }  
    }  
    if (dest){  
      try { lines[i].setAttribute("class", 'emptycell');} catch (E){}  
      //Mozilla  
      try { lines[i].setAttribute("className", 'emptycell');} catch (E){}};  
      //IE  
    }  
  }  

Ich hoffe irgendjemand kann mir helfen, den Code zu verbessern.

Mfg Henning W.

  1. Mahlzeit henningw,

    if (dest){
          try { lines[i].setAttribute("class", 'emptycell');} catch (E){}
          //Mozilla
          try { lines[i].setAttribute("className", 'emptycell');} catch (E){}};
          //IE
        }

      
    Wieso so kompliziert? Dafür gibt's die Standardeigenschaft <http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#universaleigenschaften@title=className> - mit setAttribute() zu arbeiten, ist im Normalfall nicht sinnvoll.  
      
      
    MfG,  
    EKKi  
    
    -- 
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|