Javascript 如何在append-JQuery之后增加复选框id

Javascript 如何在append-JQuery之后增加复选框id,javascript,jquery,html,Javascript,Jquery,Html,我有一个默认的复选框,其他复选框将在我单击“添加”按钮后出现。我需要检查是否选中了复选框。但这里的问题是,我的jquery只对默认复选框有效。代码如下: HTML: <form_answer> <input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/> <input type="checkbox" class ="

我有一个默认的复选框,其他复选框将在我单击“添加”按钮后出现。我需要检查是否选中了复选框。但这里的问题是,我的jquery只对默认复选框有效。代码如下:

HTML:

<form_answer>
<input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/>           
<input type="checkbox" class ="" id="correct" name="correct[][correct]"/>
<button class="" id = "btn_add"> Add</button>
</form_answer>
<script>
    $(document).ready(function(){
        $('#btn_add').click(function(){
            add_row();
        });
    });

    function add_row(){
        var id = $("#row").val();
        id++;
        var html =  '<div class="">  ' +
                    '<input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/> ' +
                    '<input type="checkbox" class ="" id="correct" name="correct[][correct]"/>' +
                    '</div>' ;
        $("form_answer").append(html);
        $("#row").val(id);
    } 


$(document).ready(function(){
    $("#correct").click(function () {
        if ($(this).prop("checked")) {
            $("#correct_hidden").val("1");
        }else{
            $("#correct_hidden").val("0");
        }
    });
});
</script>

添加
JS:

<form_answer>
<input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/>           
<input type="checkbox" class ="" id="correct" name="correct[][correct]"/>
<button class="" id = "btn_add"> Add</button>
</form_answer>
<script>
    $(document).ready(function(){
        $('#btn_add').click(function(){
            add_row();
        });
    });

    function add_row(){
        var id = $("#row").val();
        id++;
        var html =  '<div class="">  ' +
                    '<input type="hidden" class ="" id="correct_hidden" name="correct_hidden[][correct]" value="0"/> ' +
                    '<input type="checkbox" class ="" id="correct" name="correct[][correct]"/>' +
                    '</div>' ;
        $("form_answer").append(html);
        $("#row").val(id);
    } 


$(document).ready(function(){
    $("#correct").click(function () {
        if ($(this).prop("checked")) {
            $("#correct_hidden").val("1");
        }else{
            $("#correct_hidden").val("0");
        }
    });
});
</script>

$(文档).ready(函数(){
$('#btn_add')。单击(函数(){
添加_行();
});
});
函数add_row(){
var id=$(“#行”).val();
id++;
var html=''+
' ' +
'' +
'' ;
$(“表格回答”)。附加(html);
$(“#行”).val(id);
} 
$(文档).ready(函数(){
$(“#正确”)。单击(函数(){
如果($(this).prop(“选中”)){
$(“更正隐藏”).val(“1”);
}否则{
$(“更正隐藏”).val(“0”);
}
});
});

上面的脚本仅适用于默认复选框。我需要脚本来处理所有新的append复选框。我怎样才能解决这个问题

Id在Html中应该是唯一的。所以把这个改成一个类。此外,您正在向DOM添加新元素。因此,您应该在文档而不是元素本身上添加eventlistener

删除id并将其放入课堂:

<input type="checkbox" class ="correct" id="" name="correct[][correct]"/>

Id在Html中应该是唯一的。所以把这个改成一个类。此外,您正在向DOM添加新元素。因此,您应该在文档而不是元素本身上添加eventlistener

删除id并将其放入课堂:

<input type="checkbox" class ="correct" id="" name="correct[][correct]"/>

您可以将以前的值
id
存储为局部变量,如下所示

var id=0;
$(文档).ready(函数(){
$('#btn_add')。单击(函数(){
添加_行();
});
});
函数add_row(){
id++;
var html=''+
' ' +
'' +
'' ;
$(“表格回答”)。附加(html);
console.log(“Id值:”+Id);
}

添加

您可以将以前的值
id
存储为局部变量,如下所示

var id=0;
$(文档).ready(函数(){
$('#btn_add')。单击(函数(){
添加_行();
});
});
函数add_row(){
id++;
var html=''+
' ' +
'' +
'' ;
$(“表格回答”)。附加(html);
console.log(“Id值:”+Id);
}

添加


一个问题是所有复选框都具有相同的id-正确。您必须使每个复选框具有不同的id。然后,由于所有其他复选框都是动态添加的,因此初始单击处理程序将不会附加到它们。正如Ivan所说,你需要使用“on”。你的意思是不要使用。单击,我应该使用。on?作为一件事。使用“on”的想法是,您可以为尚未创建的元素添加侦听器。然后你应该考虑让复选框ID是唯一的。我应该使用ID的增量号吗?像$i?一个问题是所有复选框都有相同的id-正确。您必须使每个复选框具有不同的id。然后,由于所有其他复选框都是动态添加的,因此初始单击处理程序将不会附加到它们。正如Ivan所说,你需要使用“on”。你的意思是不要使用。单击,我应该使用。on?作为一件事。使用“on”的想法是,您可以为尚未创建的元素添加侦听器。然后你应该考虑让复选框ID是唯一的。我应该使用ID的增量号吗?像$i?这很好,但问题是选中复选框时,值不会从0更改为1。id已经增加。这很好,但问题是选中复选框时,值没有从0更改为1。id已增加。已理解,但即使我从使用id更改为类,id仍然不是唯一的。对吗?你有删除id的权限。要选择复选框仍然很简单,给他们一个类。(实际上你不需要id)我做了编辑。类不会是唯一的不,但这是一个问题吗?我不能触摸类区域,因为它是定制的。我设法使id增加,只是jquery在append复选框上不起作用。我计划在循环中创建jquery,但不知道如何实现。如果我不使用类,而是使用“input[type=checkbox]”之类的类型,这是一样的。明白了,但即使我从使用id更改为使用类,id仍然不是唯一的。对吗?你有删除id的权限。要选择复选框仍然很简单,给他们一个类。(实际上你不需要id)我做了编辑。类不会是唯一的不,但这是一个问题吗?我不能触摸类区域,因为它是定制的。我设法使id增加,只是jquery在append复选框上不起作用。我计划在循环中创建jquery,但不知道如何实现。如果我使用类似“input[type=checkbox]”的类型,而不是使用类,那也是一样的,对吗?