SO fiddle
Test Fiddle mainly for SO Questions
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/dot-luv/jquery-ui.css">
<table class="altRow">
<tr>
<td rowspan="2">1</td>
<td>joe</td>
<td>1</td>
<td>3</td>
</tr>
<tr>
<td>tom</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>joe</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>3</td>
<td>joe</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>joe</td>
<td>6</td>
<td>3</td>
</tr>
<tr>
<td rowspan="2">5</td>
<td>joe</td>
<td>5</td>
<td>3</td>
</tr>
<tr>
<td>tom</td>
<td>3</td>
<td>3</td>
</tr>
</table>
another table
<table class="altRow">
<tr>
<td rowspan="2">1</td>
<td>joe</td>
<td>1</td>
</tr>
<tr>
<td>tom</td>
<td>2</td>
</tr>
<tr>
<td>2</td>
<td>joe</td>
<td>3</td>
</tr>
<tr>
<td>3</td>
<td>joe</td>
<td>4</td>
</tr>
<tr>
<td>4</td>
<td>joe</td>
<td>6</td>
</tr>
<tr>
<td rowspan="2">5</td>
<td>joe</td>
<td>5</td>
</tr>
<tr>
<td>tom</td>
<td>3</td>
</tr>
</table>
CSS
td { vertical-align: top; padding: 3px; }
.alt { background-color: #DEDFDE; }
JavaScript
$("table.altRow").each(function() {
var $this = $(this);
var numTD = $this.find("tr:has(td[rowspan]):first td").length;
$this.data('numTD', numTD).find("tr").filter(function() {
var $this = $(this);
return $this.children().length == $this.closest('table').data('numTD');
}).filter(':even').addClass('alt');
})
$("tr.alt td[rowspan]").each(function() {
$(this).parent().nextAll().slice(0, this.rowSpan - 1).addClass('alt');
});