@ Адам и @peterendidit ударились о гвоздь по голове - здесь не нужен javascript / jQuery.
Причина, по которой ваш код не работал, вероятно, заключается в том, что this
в вашем контексте является элементом label
, в то время как td
являются родственными элементами друг друга, а не label
. Я думаю, что это сделало бы то, что вы хотели, и было бы достаточно, если бы у вас были более сложные требования - скажем, дополнительный стиль и т. Д.
var cb = $(this).closest('td') // containing TD
.prev('td') // previous TD
.find('input'); // input within TD
if (cb.find(':checked').length == 0) { // not checked
cb.attr('checked','checked');
}
else {
cb.removeAttr('checked');
}