我有一些工作脚本,但我知道有一种方法可以使用if语句来清理它,但我永远无法使它工作。
我正试图找到一种方法来搜索该值是否等于2,3或5.如果是,则选中该复选框。
这是脚本:
var num = 5;
$('input:checkbox[value="' + num + '"]').attr('checked', true);
var num = 2;
$('input:checkbox[value="' + num + '"]').attr('checked', true);
var num = 3;
$('input:checkbox[value="' + num + '"]').attr('checked', true);
HTML:
<div id="select">
<input type="checkbox" name="my_check[]" value="1">
<input type="checkbox" name="my_check[]" value="2">
<input type="checkbox" name="my_check[]" value="3">
<input type="checkbox" name="my_check[]" value="4">
<input type="checkbox" name="my_check[]" value="5">
</div>
答案 0 :(得分:2)
您可以将地图用于多个值。按下单个数组中的值并使用arry上的map来表示值。
[5,2,3].map(function(num){
$('input:checkbox[value="' + num + '"]').prop('checked', true);
})
工作小提琴 https://jsfiddle.net/d393savL/1/
PS:根据@Mike的建议更改了使用道具的答案谢谢:)
答案 1 :(得分:2)
使用.forEach()
:
var values = [2, 3, 5];
values.forEach(function(value) {
$('input:checkbox[value="' + value + '"]').prop('checked', true);
});
这将“循环”通过您的values
变量,尝试使用匹配值检查任何checkbox
。
答案 2 :(得分:0)
遍历所有输入复选框并检查值属性
$(function(){
$('input[type="checkbox"]').each(function(index, item){
switch($(item).attr('value')) {
case '2':
case '3':
case '5': $(item).prop('checked', true);
break;
}
})
})
<强> JSFIDDLE 强>
答案 3 :(得分:0)
与其他人类似,但利用选择器。您可以在一个字符串中包含多个选择器,因此让jQuery更容易执行循环。
$(function () {
$(':checkbox[value="2"],:checkbox[value="3"],:checkbox[value="5"]').prop('checked', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="select">
<input type="checkbox" name="my_check[]" value="1">
<input type="checkbox" name="my_check[]" value="2">
<input type="checkbox" name="my_check[]" value="3">
<input type="checkbox" name="my_check[]" value="4">
<input type="checkbox" name="my_check[]" value="5">
</div>
&#13;