Javascript jquery根据链接获取复选框,所有复选框都具有相同的类

Javascript jquery根据链接获取复选框,所有复选框都具有相同的类,javascript,jquery,arrays,twig,Javascript,Jquery,Arrays,Twig,我有一个初始AJAX请求,它带来了一些额外的html和一些复选框: <input type="checkbox" name="user-responses[]" class="js-answer-check question1" data-question="1" data-option-id="1"> <input type="checkbox" name="user-responses[]" class="js-answer-check question1" data-qu

我有一个初始AJAX请求,它带来了一些额外的html和一些复选框:

<input type="checkbox" name="user-responses[]" class="js-answer-check question1" data-question="1" data-option-id="1">
<input type="checkbox" name="user-responses[]" class="js-answer-check question1" data-question="1" data-option-id="2">
<input type="checkbox" name="user-responses[]" class="js-answer-check question1" data-question="1" data-option-id="3">
<input type="checkbox" name="user-responses[]" class="js-answer-check question3" data-question="3" data-option-id="7">
<input type="checkbox" name="user-responses[]" class="js-answer-check question3" data-question="3" data-option-id="8">
<input type="checkbox" name="user-responses[]" class="js-answer-check question3" data-question="3" data-option-id="9">
我怎样才能防止这种情况发生


谢谢

每次发送AJAX请求之前,请清除arr选项,以免发送重复数据。您只需在向选项添加数据之前执行此操作:

选项arr=[]

或者更好的方法是,在该函数中声明一个局部数组,而不是将其作为全局变量:

var optionsArr=[];(并删除全局)

<input type="checkbox" name="user-responses[]" class="js-answer-check question3" data-question="3" data-option-id="7">
<input type="checkbox" name="user-responses[]" class="js-answer-check question3" data-question="3" data-option-id="8">
<input type="checkbox" name="user-responses[]" class="js-answer-check question3" data-question="3" data-option-id="9">
var optionsArr = [];
var questionID;
$(document).on('click', '.js-answer-check', function(e){
    if ($(this).is(':checked')){
        questionID = $(this).data('question');
        var optionID = $(this).data('id');
        optionsArr.push(optionID);
    } else {
        var removeItem = $(this).data('id');
        optionsArr = $.grep(optionsArr, function(value){
            return value != removeItem;
        });
    }
});