2017-01-06 216 views
-1

我怎麼會選擇有自己的ID在列表或數組複選框?可以說我有ID的列表選擇複選框/ jQuery的

var selected = 'chkbx_0,chkbx_3' 

<div id="optionList"> 
<input id="chkbx_0" type="checkbox" name="c_n_0" />Option 1 
<input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2 
<input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3 
<input id="chkbx_3" type="checkbox" name="c_n_3" />Option 4 
</div> 

所以當我運行的功能,我想無論是在列表中的那個特定的div只選擇 感謝

+0

我不知道最終的結果應該是。 – epascarello

+0

所以checkbx_0和checkbx_3應該選擇? – manny

+0

最終結果將顯示chkbx_0和chkbx_3檢查,因爲他們所選擇的字符串或使其成爲一個數組 – user1314159

回答

1

如果你可以讓你的列表中的數組,然後它變得相當簡單:

var idList = ["chkbx_0", "chkbx_3"]; 
for (var i = 0; i < idList.length; i++) 
{ 
    $("#" + idList[i]).prop("checked", true); 
} 

即使你不能讓初始列表到一個數組,你可以很容易把它變成一個作爲第一步:

var selected = 'chkbx_0,chkbx_3'; 
var idList = selected.split(","); //split the list on every comma, into an array 
... 
+0

這看起來像它會適用於我。謝謝 – user1314159

0

代碼解釋

var selected_arr = selected.split(',');:我在這裏分裂你的逗號分隔的項目到一個數組

$('#optionList input').each(function(){ 
    if(selected_arr.includes($(this).attr('id'))) 
    { 
     $(this).prop('checked', true); 
    } 
}); 

在上面的函數,我們通過在所有輸入(複選框)循環指定div,並檢查它們的id是否存在於我們創建的數組中。如果它存在,我們選擇該複選框。

var selected = 'chkbx_0,chkbx_3' ; 
 

 
var selected_arr = selected.split(','); 
 

 
$('#optionList input').each(function(){ 
 
    if(selected_arr.includes($(this).attr('id'))) 
 
    { 
 
     $(this).prop('checked', true); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 

 

 

 
<div id="optionList"> 
 
<input id="chkbx_0" type="checkbox" name="c_n_0" />Option 1 
 
<input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2 
 
<input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3 
 
<input id="chkbx_3" type="checkbox" name="c_n_3" />Option 4 
 
</div>

1

var selected = 'chkbx_0,chkbx_3'; 
 

 
//split into array using split function 
 
var arr = selected.split(','); 
 

 
// here to find the length of array 
 
var len = arr.length; 
 

 
//for loop to checked the each string in array 
 
for(var i=0; i<=len; i++){ 
 
\t $('#'+arr[i]).attr('checked', true); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="optionList"> 
 
    <input id="chkbx_0" type="checkbox" name="c_n_0" />Option 1 
 
    <input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2 
 
    <input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3 
 
    <input id="chkbx_3" type="checkbox" name="c_n_3" />Option 4 
 
</div>

Click here to check working code here

+0

JSFiddle不需要集成的代碼片段。另外,考慮一下解釋你的答案。 –