2017-01-06 215 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不需要集成的代码片段。另外,考虑一下解释你的答案。 –