这个代码中的this.checked是如何工作的?

时间:2014-03-10 07:02:25

标签: jquery checkbox

如何在此处计算此代码?代码完全按照它应该的方式工作 是的,我只是没有得到逻辑。

<p>Select All :
    <input type="checkbox" id="selectAll">
</p>
<p>
    Item 1:
    <input type="checkbox" class="children" value="item1">Item 2:
    <input type="checkbox" class="children" value="item2">Item 3:
    <input type="checkbox" class="children" value="item3">
</p>
$(document).ready(function () {
    $('#selectAll').click(function () {
        $('.children').prop('checked', this.checked);
    });
});

JSFiddle

4 个答案:

答案 0 :(得分:5)

this.checked给出true或false,用于设置具有class children的所有元素的checked属性。如果选择全部选中,则此选项将另行提供truefalse

要理解这一点,请考虑您对此进行检查的情况。检查并在检查时将checked属性设置为true,并在未选中时设置false

if(this.checked)
    $('.children').prop('checked', true);
else
    $('.children').prop('checked', false);

或者只是没有条件

$('.children').prop('checked', this.checked);

答案 1 :(得分:3)

单击#selectAll时,为所有孩子设置相同的值。 this.checked会返回#selectAll复选框的值。

答案 2 :(得分:1)

在您的情况下,this.checked基本上用于检索ID为selectAll的输入的已检查状态。

它将返回truefalse,然后根据此值,它会设置input的已检查状态,其中包含children类。

因此,如果选中selectAll,则会检查所有.children,反之亦然。

答案 3 :(得分:1)

简单:

单击selectAll时,所有具有子类的复选框都将设置为selectAll值的值。

这意味着如果单击selectAll,则如果selectAll被选中或取消选中selectAll,则检查所有子类复选框。