for循环之后未执行的代码--javascript

for循环之后未执行的代码--javascript,javascript,Javascript,我正在编写一个函数,该函数应该循环遍历我所有的复选框,并将选中的复选框的“值”加载到数组中,但是除了第一个for循环外,没有执行任何操作。我完全被难住了,我还缺什么 function saveSettings(){ var count = 1; //count for db var checked=[]; //array of checked values var inc = 0; //only incremented when checkbox is checked

我正在编写一个函数,该函数应该循环遍历我所有的复选框,并将选中的复选框的“值”加载到数组中,但是除了第一个for循环外,没有执行任何操作。我完全被难住了,我还缺什么

function saveSettings(){
    var count = 1; //count for db
    var checked=[]; //array of checked values
    var inc = 0; //only incremented when checkbox is checked
    var dataString = "x";

    for(var i=0; i<=2; i++) { //loads checked array with checked values
        if(document.getElementById("check"+i).checked == true){
            checked[inc] = document.getElementById("check"+i).value;
            alert(checked[inc]) // <------ executing as expected
            inc++;
        }
    }

    alert("made it") // <------ not executing
    if(checked.length>0){ // loads checked values into dataString
        for(var i=0; i == checked.length; i++){
            if(i == 0){
                dataString = "co_" + count +"="+checked[i]
            }
            else {
                dataString = dataString +"&co_" + count +"="+checked[i]
            }
            count++;
        }
    }

    alert(dataString)
函数保存设置(){
var count=1;//数据库的计数
var checked=[];//检查值数组
var inc=0;//仅在选中复选框时递增
var dataString=“x”;
对于(var i=0;i在这一行中

if(document.getElementById(“check”+i).checked==true){
//…

getElementById将返回一个未定义的值,且未定义的没有.checked属性


文档中有多少个复选框?

尝试下面的工作解决方案。代码中的第二个for循环条件(i==checked.length)是错误的。它应该是
i

函数保存设置(){
var count=1;//数据库的计数
var checked=[];//检查值数组
var inc=0;//仅在选中复选框时递增
var dataString=“x”;
对于(var i=0;i0){//将检查值加载到数据字符串中
对于(变量i=0;i
您的第二个for循环出错

函数保存设置(){
var count=1;//数据库的计数
var checked=[];//检查值数组
var inc=0;//仅在选中复选框时递增
var dataString=“x”;

对于(var i=0;i根据您对问题的描述,我认为问题在于复选框的数量,如果您只有2个复选框,那么条件
i有多少个复选框…您的浏览器控制台中有任何错误可以创建JSFIDLE吗?-看起来fine@lockedz在这种情况下,您应该使用'let'而不是'var'。请参阅:它可以正常工作,检查小提琴。
function saveSettings() {

        var count = 1; //count for db
        var checked = []; //array of checked values
        var inc = 0; //only incremented when checkbox is checked
        var dataString = "x";

        for (var i = 0; i <= 2; i++) { //loads checked array with checked values
            if (document.getElementById("check" + i).checked == true) {
                checked[inc] = document.getElementById("check" + i).value;
                inc++;
            }
        }
        if (checked.length > 0) { // loads checked values into dataString
            for (var i = 0; i < checked.length; i++) {
                if (i == 0) {
                    dataString = "co_" + count + "=" + checked[i]
                }
                else {
                    dataString = dataString + "&co_" + count + "=" + checked[i]
                }
                count++;
            }
        }
        alert(dataString)
    }