Andreas Dölling: DOM - Tabelleninhalt auslesen. Klappt nicht im IE?!?!

Beitrag lesen

Hallo,

soweit ich das sehe, hängt der Fehler im IE damit zusammen, daß er den DOM-Baum zum Zeitpunkt, wo das Script ausgeführt wird, noch nicht komplett geladen hat.
Ich habe Deinen Code mal so umgebaut, daß das Javascript im HTML-Head steht und erst bei onload aufgerufen wird.

Außerdem habe ich mir mal erlaubt, Deine Funktion getValue() ein wenig zu straffen (s.u.).
;)

So klappt es bei mir auch im IE.

Übrigens: sollte Dir onload nicht passen, weil dieses Ereignis zu spät gefeuert wird, dann schau mal unter http://www.zelph.com/archives/2005/03/31/introducing-ondomload/.

Ciao,
Andreas

<html>
<head>

<script type="text/javascript">
<!--

function getHeader(search)
{
  var count= 0;
  var header= document.getElementsByTagName("th")[0];

while(header)
  {
    if(header.tagName == "TH" )
    {
      count++;
      if(header.firstChild.data == search)
      {
          break;
      }
    }
    header= header.nextSibling;
  }
  return count;
}

function getValue(zeilen, position)
{
  var row = document.getElementsByTagName('TR')[zeilen];
  var cell = row.getElementsByTagName('TD')[position-1];
  return cell.firstChild.data;

}

function getValueOf(header,zeile)
{
  return getValue(zeile,getHeader(header));
}

-->
</script>

</head>
<body onload="alert(getValueOf('Test2',2));">

<table border>
 <tr>
  <th>Test</th>
  <th>Neu</th>
  <th>Test2</th>
 </tr>
 <tr>
  <td>1-1</td>
  <td>1-2</td>
  <td>1-3</td>
 </tr>
 <tr>
  <td>2-1</td>
  <td>2-2</td>
  <td>2-3</td>
 </tr>
 <tr>
  <td>3-1</td>
  <td>3-2</td>
  <td>3-3</td>
 </tr>
</table>
</body>
</html>