javascript在for语句中创建多个复选框

时间:2011-07-15 00:30:02

标签: javascript checkbox for-loop

您好我正在尝试创建一堆复选框,而不必创建当前的每个复选框:

function test(obj) {
    if (document.getElementByID("info").checked == true) { 
        document.getElementById("gender")[0].disabled = true;
    }
}

它适用于一个复选框,但我一直在尝试使用以下代码:

function test(obj) {
    var x = obj.name;
    var rowCount = $('#List tr').length;
    for (var i = 0; i rowCount-1; i++) { 
        if (x == document.getElementByID("info"["+i+"]).checked == true) {
            document.getElementById("gender"["+i+"]).disabled = true;
        }
    }
}

创建尽可能多的复选框,而不必制作每个复选框,但它似乎不起作用。

1 个答案:

答案 0 :(得分:3)

好的,让我们从头开始:

要在javascript中创建一个复选框,您必须执行以下操作:

var checkbox = document.createElement("input");
checkbox.type = "checkbox";

然后,要将您的复选框添加到网页上的div中,您可以执行以下操作:

document.getElementById("your_div_id").appendChild(checkbox);

然后,为了查看是否选中了复选框,您可以查看“已检查”属性,如下所示:

var isChecked = !!document.getElementById("your_checkbox").checked;
if(isChecked == true){
    // Do whatever you want
}

这是一个循环遍历一堆复选框的函数

function testCheckBoxes(container_id){
    var checkboxes = document.querySelector("#" + container_id + " > input[type='checkbox']");
    for(var i = 0; i < checkboxes.length; i++){
        if(!!checkboxes[i].checked == true){
            // Your code
        }
}

[旁注:我使用document.querySelector来保持一致性但是因为我认为你正在使用jquery然后使用$代替] 如果您想在有人点击您的复选框时执行某些操作,请使用事件监听器:

var list = document.getElementsByClassName("checkbox");
for(var i = 0; i < list.length; i++){
    list[i].addEventListener('click', function(event){
        if(!!event.target.checked == true){
            // Do something
        }
    }, true);
}

希望这足以让你入门。祝你好运=)