Я знаю, что вы уже приняли ответ Эдди, но здесь он все равно.
Чтобы улучшить свой ответ, вот фрагмент, показывающий, что я сделаю.
Пожалуйста, уделите время рассмотрению методов, используемых в javascript, это единственное, что я изменил по сравнению с кодом Эдди. Я добавил комментарии, чтобы прояснить ситуацию.
Плюс, я добавил что-то смешное в CSS!
// Listen to checkboxes change on table
$('.tb input[type="checkbox"]').change(function() {
// Remove the class on all trs and tds
$('.tb tr, .tb td').removeClass('selected');
// Add the class only to checked trs (rows)
// Note that there is no need to use the .find() method
// You can just move the whole selection string in the $() query
$('.tb tr>td:first-child input[type="checkbox"]:checked').each(function() {
// closest() is a really nice method, consider it! Way clearer than .parent().parent()…
$(this).closest('tr').addClass('selected');
})
// Add the class only to checked tds (columns)
var tds = $('.tb tr:first-child td');
$('.tb tr:first-child input[type="checkbox"]:checked').closest('td').each(function() {
// The each only contains selected tds, not all of them
// Get index for each of the selecteds (+1 because index starts at 0) and style them!
$('.tb tr>td:nth-child(' + (tds.index($(this)) + 1) + ')').addClass('selected');
})
})
.tb {
font-size: 12px;
border: 1px solid #CCC;
font-family: Arial, Helvetica, sans-serif;
}
.tb td {
padding: 4px;
margin: 3px;
border: 1px solid #CCC;
}
.selected {
color: red;
}
/* The funny thing is that we could stylize intersections */
.selected .selected {
color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tb">
<tbody>
<tr>
<td></td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Text</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Text</td>
<td>Text</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Number</td>
<td>Number</td>
<td>Text</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Number</td>
<td>Text</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
<td>Text</td>
</tr>
<tr>
<td>
<label class="color-switch">
<input type="checkbox"/> Switch</label>
</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
<td>Number</td>
</tr>
</tbody>
</table>
Подробнее о .closest()
: https://api.jquery.com/closest/
Подробнее о .index()
: https://api.jquery.com/index/
Надеюсь, это поможет.