2015-05-14 42 views
-1

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] ..我需要「變種simvalue」

+0

'變種sim_list = $(「輸入[名稱= 」simnamecbx「]:檢查').map(function(){return {simulation_name:this.value.split(「」)[0]};})。toArray()' – Bergi

回答

1

你不將數據推送到陣列像1,2,3,4值而不是要重新啓動陣列

嘗試這樣

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

您重新分配陣列,而不是增加在這裏

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

也只有一個屬性設置爲一個對象,或在最後屬性時,不應該有任何,。您可以使用push添加到數組中。

sim_list.push({simulation_name : sim_name}); 

sim_list delcared作爲一個空數組循環之前。

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

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 />"); 
 
}); 
 
    
 
});
<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>