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这样的值
答案 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
});
});
答案 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;