テーブルセルをhoverして色を付ける時のテクニックとして、
td:hover {
background-color: #ff0000;
}
とかあると思うのですが、rowspanとかで結合してるときに使える時があるのがこれです。
使えない時もあるかもしれませんが、こういう風にやりたいときに有効です。
<table>
<tbody>
<tr>
<td rowspan="3">Alphabet</td>
<td rowspan="2">a</td>
<td>b</td>
<td>c</td>
</tr>
<tr>
<td>d</td>
<td>e</td>
</tr>
<tr>
<td>f</td>
<td>g</td>
<td>h</td>
</tr>
<tr>
<td rowspan="3">Number</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</tbody>
</table>
$("td").hover(function() { $el = $(this); $el.parent().addClass("hover");if ($el.parent().has('td[rowspan]').length == 0) $el .parent() .prevAll('tr:has(td[rowspan]):first') .find('td[rowspan]') .addClass("hover"); }, function() { $el .parent() .removeClass("hover") .prevAll('tr:has(td[rowspan]):first') .find('td[rowspan]') .removeClass("hover"); });
.hover { background: red; }