这是html:

<div class="btn btn-stock-report" id="superman">
    Superman <input type="checkbox" name="superman" />
</div>


这是JQuery:

$('#superman').on('click', function () {
    if ($(this).children('input:checkbox:first').is(':checked')) {
        superman = true;
        $(this).children('input:checkbox:first').removeAttr('checked');
    }
    else {
        superman = false;
        $(this).children('input:checkbox:first').attr('checked', 'checked');
    }
    console.log("superman: " + superman);
});


我要实现的目标只是更改子复选框的状态并更改superman变量的值,但是由于某些原因,它总是在控制台日志中打印出superman: false。即使我手动选中该复选框并单击div,即使该复选框现在已选中,它也会报告superman: false

是什么原因造成的?

最佳答案

您可以将<div>更改为<label>并摆脱所有的jQuery代码,它将正常工作。

关于javascript - jQuery不会选择并更改复选框的状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32610548/

10-12 00:06