如何在$.each中输入checked?

How to enter the checked in a $ .each?

我在 jquery ($.each) 中有一个循环,它创建了一个复选框列表。

我正在尝试插入 checked

$.each(arrIdReg, function (id, IdRegx) {
    if (IdRegx[0] == IdRegy[0]) {                 
        Nom = Nom + IdRegx[1] + ", ";
        // strChecked = "checked='checked'";
        strChecked = true;
    }
});
$('#Elen').append("<li><input type='checkbox' value='" + IdRegx[0] + " name='IdReg' class='checkbox'>" + IdRegx[1] + "</li>").prop('checked', strChecked);

问题是它不起作用,因为它们都被选中了。

你能帮帮我吗?

谢谢!

.append() 的 return 值是您附加到的元素,因此您的代码试图在 $("#Elen") 上设置 checked 属性,不是复选框。

最简单的方法是在要追加的 HTML 中添加 checked 属性。

$.each(arrIdReg, function (id, IdRegx) {
    if (IdRegx[0] == IdRegy[0]) {                 
        Nom = Nom + IdRegx[1] + ", ";
        var strChecked = "checked='checked'";
    } else {
        strChecked = "";
    }
    $('#Elen').append("<li><input type='checkbox' value='" + IdRegx[0] + " name='IdReg' class='checkbox' " + strChecked + ">" + IdRegx[1] + "</li>");
});

如果您想以编程方式进行更多操作,可以将复选框创建为单独的步骤。

$.each(arrIdReg, function (id, IdRegx) {
    if (IdRegx[0] == IdRegy[0]) {                 
        Nom = Nom + IdRegx[1] + ", ";
        var boolChecked = true;
    } else {
        boolChecked = false;
    }
    var checkbox = $("<input>", {
        type: 'checkbox',
        value: IdRegx[0],
        name: 'IdReg',
        'class': 'checkbox',
        checked: boolChecked
    });
    $('#Elen').append($("<li>").append(checkbox).append(IdRegx[1]));
});