Будьте осторожны с некоторыми ответами, которые появятся здесь, они будут хрупкими (изменение вашего HTML может нарушить ваш код).
Я бы порекомендовал прочитать: Разделение вашего HTML, CSS иJavaScript .
Вы сразу сможете распознать, что если кто-то решит обернуть вашу текстовую область или изменить таблицу на <div>
, потому что он хочет использовать загрузчик, ваш код больше не работает (хрупкийcode).
Вместо этого, представьте несколько классов, которые описывают, что вы пытаетесь сделать:
.input-bg-container
.js-bg-trigger
.input-bg-active
.input-bg-target
Обновите ваш html:
<tr class="input-bg-container">
<td>Glucose</td>
<td><input class="txtbox input-bg-target" type="text"></td>
<td><input type="checkbox" class="nrml js-input-bg"></td>
<td><input type="checkbox" class="abnrml"></td>
<td>60-80</td>
<td>110-120</td>
</tr>
обновите ваш jQuery:
$('.input-bg-container .js-input-bg').on('click', function() {
var $this = $(this);
var isChecked = $this.prop('checked');
var $container = $this.closest('.input-bg-container');
var $target = $container.find('.input-bg-target');
var $target.toggleClass('input-bg-active', isChecked);
});
Теперь примените любой css к желаемому активному классу.