我有一个独特的复选框模式窗口
<div class="tv-choices" style="display:none;"><!-- turned on via button-->
<div class="choices-title">TV</div>
<div class="choices-checkboxes">
<div class="category_box">
<input type="checkbox" id="getf{038}" name="getfItem" value="Adult Animated">
<label for="get{038}">Adult Animated</label>
</div>
<div class="category_box">
<input type="checkbox" id="getf{9FA}" name="getfItem" value="Anime">
<label for="get{9FA}">Anime</label>
</div>
<div class="category_box">
<input type="checkbox" id="getf{821}" name="getfItem" value="Award Shows">
<label for="get{821}">Award Shows</label>
</div>
</div>
现在我有了一个多维数组:
object_with_arrays['genreAry'+ary_Num]
假设数组object_with_arrays[genreAry1]
包含:成人动画和动漫,但奖励显示。 您现在如何通过jQuery检查这些复选框?
项目故事: 我有9个生成的按钮,可以动态创建一个模态窗口,每个模态窗口都提供一组复选框。由于我使用1个模态窗口,我必须清除透明复选框。我发现下面的代码有效,但我似乎无法弄清楚如何使用我的数组重新填充复选框
$('.tv-choices').find(':checked').each(function() {
$(this).removeAttr('checked');
});
答案 0 :(得分:2)
$('.modal').find('input[type="checkbox"]').each(function() {
var state = $.inArray(this.value, object_with_arrays['genreAry1'])!=-1;
$(this).prop('checked', state);
});
迭代复选框,并根据数组中是否存在复选框值来设置checked属性?
答案 1 :(得分:2)
您可以使用jQuery过滤属性。如果你只是在寻找一个项目,那就是这样的:
$('.modal').find('input:checkbox[value="Anime"]').each(function() {
$(this).prop('checked', true);
});
但是,既然你想检查一个值列表,你可以使用filter
进行回调:
var searchValues = object_with_arrays['genreAry'+ary_Num];
//e.g. searchValues == ["Anime", "Adult Animated"]
$('.modal').find('input:checkbox').filter(function() {
return searchValues.indexOf($(this).val()) >= 0;
}).each(function() {
$(this).prop('checked', true);
});
如果您还想取消选中所有其他复选框:
$('.modal').find('input:checkbox').each(function() {
var checked = searchValues.indexOf($(this).val()) >= 0;
$(this).prop('checked', checked)
});