Установите флажок, когда щелкают по определенным родственным элементам

0

Я пытаюсь установить флажок в третьем TD при щелчке первого или третьего TD, но не при нажатии второго TD. Вот мой код, с которым я не могу работать:

<tr class="item" id="sku999">
      <td>Hat</td>
      <td class="valueButton"></td>
      <td><input type="checkbox" name="choice" value="10.00"></td>
</tr>

$(document).on({
    click: function () {
        $(this).toggleClass('blueChecked');
        $(this).prevAll.toggleClass('blueChecked');
        $(this).nextAll.toggleClass('blueChecked');
        if (event.target.type !== 'checkbox') {
            $(':checkbox', this.parent()).attr('checked', function() {
                return !this.checked;
            });
        }
    }
}, "tr.item td:not('.valueButton')");

ОБНОВЛЕНИЕ: Я забыл упомянуть, что мне нужно переключить флажок.

ОБНОВЛЕНИЕ: Решено!

$(document).on({
    click: function () {
        $("td:not('.valueButton')", $(this).parent()).toggleClass('blueChecked');

        if (event.target.type !== 'checkbox') {
            $(':checkbox', $(this).parent()).attr('checked', function() {
                return !this.checked;
            });
        }
    }
}, "tr.item td:not('.valueButton')");
  • 0
    Попробуйте использовать .prop() вместо .attr() , и здесь вам не нужен обратный вызов, вы можете просто написать $(':checkbox', this.parent()).prop('checked',!this.checked)
  • 0
    Спасибо, эта половина работает, однако она работает только при установке флажка, она не работает при втором щелчке, чтобы снять отметку: $(':checkbox', $(this).parent()).prop('checked', !$(this).checked);
Показать ещё 2 комментария
Теги:

1 ответ

0

попробуй это

$('td:not(:nth-child(1))').click(function{
             $('td:nth-child(2) checkbox').prop('checked',true);
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню