Use the jQuery :nth-child()
selector
You can use the jQuery :nth-child()
selector to create the zebra striped table by highlighting its alternate rows. The :nth-child(N)
selector accepts these arguments — the index of each child to match (starting with 1
), the string even or odd, or an expression (e.g. :nth-child(2)
, :nth-child(even)
, :nth-child(2n)
. Let's take a look at an example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Zebra Striped Table with jQuery</title>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function(){
// Apply alt class on alternate table row
$("table tbody tr:nth-child(2n)").addClass("alt");
});
</script>
<style>
table{
margin: 30px;
border-collapse: collapse;
}
table tr{
border-bottom: 1px solid #666;
}
table th, table td{
padding: 10px;
}
/* Highlighter class */
.alt{
background: #cdcdcd;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>John</td>
<td>Carter</td>
<td>johncarter@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</td>
</tr>
<tr>
<td>4</td>
<td>Harry</td>
<td>Potter</td>
<td>harrypotter@mail.com</td>
</tr>
<tr>
<td>5</td>
<td>Percy</td>
<td>Jackson</td>
<td>percyjackson@mail.com</td>
</tr>
</tbody>
</table>
</body>
</html>