我需要一系列选中的复选框

时间:2015-05-14 07:25:16

标签: javascript arrays

Javascript代码:

var simvalue = $('input[name="simnamecbx"]:checked').each(function() {
        var sim_name=this.value.split(" ")[0];
        console.log("simname:",sim_name);
        var sim_list = [{
            simulation_name : sim_name,
        }];
        console.log(sim_list);
    });

我需要在sim_list中选择一个复选框的数组..当前值数组被替换为相同的索引,即数组[1] ..我需要像'var simvalue'中的1,2,3,4这样的值

3 个答案:

答案 0 :(得分:1)

您没有将数据推送到数组而是重新启动数组

试试这个

var sim_list=[];
var simvalue = $('input[name="simnamecbx"]:checked').each(function() {
        var sim_name=this.value.split(" ")[0];
        console.log("simname:",sim_name);
        sim_list.push({
            simulation_name : sim_name,
        });

    });
console.log(sim_list);

答案 1 :(得分:1)

您正在重新分配数组,而不是在此处添加

var sim_list = [{
    simulation_name : sim_name,
}];

当仅将一个属性设置为对象或最后一个属性时,也不应该有任何,。您可以使用push添加到数组中。

sim_list.push({simulation_name : sim_name});

sim_list之前,在循环之前将其作为空数组。

var sim_list = [];

$('input[name="simnamecbx"]:checked').each(function() {

    var sim_name = this.value.split(" ")[0];

    sim_list.push({
        simulation_name : sim_name // comma removed to avoid errors
    });

});

请参阅push documentation

答案 2 :(得分:0)

正如其他人所说,你在每个循环中重新分配数组,因此所有以前的值都会丢失。

map函数可以获取所需的所有值并将它们放入数组中:



$(function() {

// Call map on your selector
var result = $('input[name="simnamecbx"]:checked').map(function() {    
  // return the values you want in the array
  return { simulation_name: this.value.split(' ')[0] };
}).get(); // get returns the result as an array

// Output result
$.each(result, function(i, val) {
    $('#result').append("Simulation name: " + val.simulation_name + "<br />");
});
  
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="simnamecbx" value="test1 1" checked="checked" /> 1 <br />
<input type="checkbox" name="simnamecbx" value="test2 2" /> 2 <br />
<input type="checkbox" name="simnamecbx" value="test3 3" /> 3 <br />
<input type="checkbox" name="simnamecbx" value="test4 4" checked="checked" /> 4 <br />
<input type="checkbox" name="simnamecbx" value="test5 5" /> 5 <br />

<div id="result"></div>
&#13;
&#13;
&#13;