使用Javascript设置备用行的样式

Sam*_* Kh 2 html javascript css dom css-selectors

我试图使用Javascript更改两个表的备用行的背景颜色.

我能够使用下面的javascript来做到这一点,但我确信有一种更有效或捷径的方法来使用CSS选择器选择所需的子元素.有人可以帮忙吗?

window.onload = function() {
  var elem = document.getElementsByTagName('table')
  for (let c = 0; c < elem.length; c++) {
    var childElem = elem[c].getElementsByTagName('tr');
    for (let d = 0; d < childElem.length; d = d + 2) {
      childElem[d].classList.add('alt');
    }
  }
}
Run Code Online (Sandbox Code Playgroud)
tr {
  background-color: #fff;
}

.alt {
  background-color: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
<html>

<body>
  <h2>Online Tx</h2>
  <table>
    <tr>
      <td>As You Like It</td>
      <td>Comedy</td>
      <td></td>
    </tr>
    <tr>
      <td>All's Well that Ends Well</td>
      <td>Comedy</td>
      <td>1601</td>
    </tr>
    <tr>
      <td>Hamlet</td>
      <td>Tragedy</td>
      <td>1604</td>
    </tr>
    <tr>
      <td>Macbeth</td>
      <td>Tragedy</td>
      <td>1606</td>
    </tr>
    <tr>
      <td>Romeo and Juliet</td>
      <td>Tragedy</td>
      <td>1595</td>
    </tr>
  </table>
  <h2>Backend tx</h2>
  <table>
    <tr>
      <td>The Fair Youth</td>
      <td>1–126</td>
    </tr>
    <tr>
      <td>The Dark Lady</td>
      <td>127–152</td>
    </tr>
    <tr>
      <td>The Rival Poet</td>
      <td>78–86</td>
    </tr>
  </table>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 8

你可以用纯CSS和nth-child来实现它:

tr:nth-child(2n) {
  background-color: #eee;
}

tr:nth-child(2n + 1) {
  background-color: #ccc;
}
Run Code Online (Sandbox Code Playgroud)
<h2>Online Tx</h2>
<table>
  <tr>
    <td>As You Like It</td>
    <td>Comedy</td>
    <td></td>
  </tr>
  <tr>
    <td>All's Well that Ends Well</td>
    <td>Comedy</td>
    <td>1601</td>
  </tr>
  <tr>
    <td>Hamlet</td>
    <td>Tragedy</td>
    <td>1604</td>
  </tr>
  <tr>
    <td>Macbeth</td>
    <td>Tragedy</td>
    <td>1606</td>
  </tr>
  <tr>
    <td>Romeo and Juliet</td>
    <td>Tragedy</td>
    <td>1595</td>
  </tr>
</table>
<h2>Backend tx</h2>
<table>
  <tr>
    <td>The Fair Youth</td>
    <td>1–126</td>
  </tr>
  <tr>
    <td>The Dark Lady</td>
    <td>127–152</td>
  </tr>
  <tr>
    <td>The Rival Poet</td>
    <td>78–86</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)