У меня есть этот сценарий, который меняет background-color на tr таблицы при нажатии:
<script>
$('#reviews').on('click', 'tbody tr', function(event) {
$(this).addClass('highlight').siblings().removeClass('highlight');
})
</script>
Работает нормально. Однако я бы хотел исключить первый td из tr. Итак, когда пользователь нажимает на первый td, ничего не происходит. Как это исключить?
Пробовал это:
<script>
$('#reviews').on('click', 'tbody tr:not(:first-of-type)', function(event) {
$(this).addClass('highlight').siblings().removeClass('highlight');
})
</script>
Но он по-прежнему выделяет всю строку при нажатии на первый td.
Спасибо. Но я попробовал, такая же проблема.
Этот ответ нацелен конкретно на tds. Ваш дочерний селектор делегата нацелен на trs. Итак, они разные в этом аспекте.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы пытаетесь исключить первый tr, но упомянули, что хотите исключить первый td.
попробуй вот так
$('#reviews').on('click', 'tbody > tr', function(event) {
$(this).parent().find('td:not(:first-of-type)').addClass('highlight');
$('table#reviews tr > td:not(:first-of-type).highlight').removeClass('highlight');
})
Вы исключаете первый tr, а не td из каждой строки. Если я правильно понимаю ваши цели, это должно выглядеть примерно так:
$('#reviews').on('click', 'tbody tr td:not( :first-of-type )', function(event) {
$(this).parent().addClass('highlight').siblings().removeClass('highlight');
})
ответил здесь stackoverflow.com/questions/8977816/…