我正在返回一个JSON数据结构,我将其拆分并填充我的数组:
var arrayValues = data.contents.split('|');
// arrayValues = 1,3,4
如何根据数组值检查相应的复选框?
我的HTML看起来像这样:
<div id="divID">
<input type="checkbox" name="test" value="1" /> Test 1<br />
<input type="checkbox" name="test" value="2" /> Test 2<br />
<input type="checkbox" name="test" value="3" /> Test 3<br />
<input type="checkbox" name="test" value="4" /> Test 4<br />
<input type="checkbox" name="test" value="5" /> Test 5<br />
</div>
答案 0 :(得分:18)
使用属性选择器
尝试此操作$.each(arrayValues, function(i, val){
$("input[value='" + val + "']").prop('checked', true);
});
答案 1 :(得分:9)
的Javascript
$.each(arrayValues, function (index, value) {
$('input[name="test"][value="' + value.toString() + '"]').prop("checked", true);
});
答案 2 :(得分:1)
你可以遍历你的数组并在jQuery上进行属性搜索
var i = 0;
while (arrayValues.length < i) {
var val = arrayValues[i];
$('#divID input[value="' + val + '"]').prop('checked', 'checked');
i++;
}
答案 3 :(得分:1)
更简单:
$('input[name="test"]').val(arrayValues);
这将检查数组中的值并取消选择其他值。
来自JQuery的文档:http://api.jquery.com/val/
val()允许您传递元素值数组。这很有用 处理包含&lt; input等元素的jQuery对象时 type =“checkbox”&gt;,&lt; input type =“radio”&gt;,&lt; option&gt; s in a &LT;选择取代。在这种情况下,输入和选项具有值 匹配数组中的一个元素将被选中或选中 而那些具有与其中一个元素不匹配的值的那些 取决于类型,数组将被取消选中或取消选中。
答案 4 :(得分:0)
好的,花了我一点时间来解决代码中的错误。 我想现在 ShankarSangoli 已经回答了这个问题。
我希望你不介意我以任何方式发布我的解决方案。我只是好奇,如果这对表现等更糟糕。
var arrayValues = new Array(1,3,4);
$('#divID input').filter(function(){
return ($.inArray( parseInt($(this).attr('value')), arrayValues)) != -1;
}).attr('checked', 'checked');