使用 rowspan 每隔一行着色

Evg*_*nik -2 javascript css jquery html-table

我想为表格的每一行着色。虽然每个常规表格都可以使用此着色:

$('tr:odd').css( "background-color", "orange" );
Run Code Online (Sandbox Code Playgroud)

就我而言,有几个rowspan,使任务变得更加困难。

这是我想要的输出:

想要的桌子

使用上面的代码不会导致预期的结果:

在此处输入图片说明

这是一个小提琴

$('tr:odd').css( "background-color", "orange" );
Run Code Online (Sandbox Code Playgroud)
$('tr:odd').css("background-color", "orange");
Run Code Online (Sandbox Code Playgroud)

voi*_*oid 5

做这样的事情:

$("table tr").filter(function() { 
  return $(this).children().length == 3;
}).filter(':odd').addClass('alt');

$("tr.alt td[rowspan]").each(function() {
  $(this).parent().nextAll().slice(0, this.rowSpan - 1).addClass('alt');
});
Run Code Online (Sandbox Code Playgroud)
.alt { background-color: orange; }
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
  <tr>
    <td>Col 1</td>
    <td>Col 2</td>
    <td>Col 3</td>
  </tr>
  <tr>
    <td rowspan="2">Col 1</td>
    <td>Col 2</td>
    <td rowspan="2">Col 3</td>
  </tr>
  <tr>
    <td>Col 1</td>
  </tr>
  <tr>
    <td>Col 1</td>
    <td>Col 2</td>
    <td>Col 3</td>
  </tr>
  <tr>
    <td rowspan="2">Col 1</td>
    <td rowspan="2">Col 2</td>
    <td>Col 3</td>
  </tr>
  <tr>
    <td>Col 1</td>
  </tr>
  <tr>
    <td>Col 1</td>
    <td>Col 2</td>
    <td>Col 3</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)