Sebastian Becker: Tabellenzeilen abwechslungsweise einfärben

Beitrag lesen

Hallo, Daniel,

in der Zeile

if(j%2==0)tables[i].rows[j].className="rowbackalt";

ist "tables[i]." zuviel!

Ich hab' Dein Skript mal nachgebaut (mit 2 + 2 Tabellen) und optimiert und es funktioniert jetzt im Prinzip.

Allerdings erhalten die Tabellen in den Tabellen jetzt auch wechselnde Hintergrundfarben. Wenn das nicht erwünscht ist, musst Du das Skript natürlich noch entsprechend abändern ...

Grüße,

Sebastian

<style>
.rowback {
background: #EFEFEF;
}
.rowbackalt {
background: #CCCCCC;
}
</style>

<script>

function altRow()
{
tables=document.getElementsByTagName("table");
for(i=0;i<tables.length;i++) {

// zum Testen
// alert(tables.length);
// alert(tables[i].id);

rows=tables[i].getElementsByTagName("tr");
for(j=0;j<rows.length;j++)rows[j].className=j%2==0?"rowbackalt":"rowback";
}
}

</script>

<body onLoad="altRow();">

<table width="100" id="table1">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>

<table width="50" id="table2">
<tr>
<td>3.1</td>
</tr>
<tr>
<td>3.2</td>
</tr>
<tr>
<td>3.3</td>
</tr>
</table>

</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
</table>

<table width="100" id="table3">
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>

<table width="50" id="table4">
<tr>
<td>3.1</td>
</tr>
<tr>
<td>3.2</td>
</tr>
<tr>
<td>3.3</td>
</tr>
</table>

</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
</table>

</body>