1

クロムでは、エラーも警告も情報もありません。それはうまくいきません。

 $(document).ready(function () {
        var cbxAdmins = $("input[name^=hasAdmin][type=checkbox]");
        for (var i = 0; i < cbxAdmins.Length; i++) {

            cbxAdmins[i].click(function () {
                var checkAll = this.checked;
                var permiCheckboxes = $(this).parents("tr:first").find(':checkbox');

                if (checkAll) {
                    $(permiCheckboxes).attr('checked', true);
                }
                else {
                    $(permiCheckboxes).attr('checked', '');
                }
            });
        }


    });
4

1 に答える 1

4

for配列内のすべての要素にまたがるループは必要ありません。jQuery はクリック イベントを個別に適用するのに十分スマートです。これを試して:

$(document).ready(function () {
    $("input[name^=hasAdmin][type=checkbox]").click(function () {
        $(this).closest("tr").find('[type=checkbox]').prop('checked', this.checked);
    });
});

また、Fabricio Matte のおかげで、ロジックを少しクリーンアップしました。

于 2012-09-05T08:20:44.173 に答える