我在我的应用程序中使用复选框,但我遇到了一个问题,尽管我付出了努力,但仍无法解决。
function allChecked(status,set){
alert(set);
if(status)
$('input[type=checkbox]').attr('checked','true');
else
$('input[type=checkbox]').attr('checked','');
}
上述功能根据“状态”的值选择或取消选择所有复选框。 “set”是一个数字,指定应选择多少个复选框。所以我希望代码根据“set”的值选择复选框。我该怎么做?
答案 0 :(得分:1)
编辑:
对于函数调用,您可以使用以下代码
function allChecked(){
if($('#selectall').attr('checked', this.checked))
$(".case").attr("checked", "checked");
else
$(".case").removeAttr("checked");
}
示例:http://jsfiddle.net/ipsjolly/wUgwz/7/
您也可以使用ID而不是调用函数
$(function(){
// add multiple select / deselect functionality
$("#selectall").click(function () {
$('.case').attr('checked', this.checked);
});
// if all checkbox are selected, check the selectall checkbox
// and viceversa
$(".case").click(function(){
if($(".case").length == $(".case:checked").length) {
$("#selectall").attr("checked", "checked");
} else {
$("#selectall").removeAttr("checked");
}
});
});
示例:http://jsfiddle.net/ipsjolly/wUgwz/8/
来源:http://viralpatel.net/blogs/multiple-checkbox-select-deselect-jquery-tutorial-example/
答案 1 :(得分:1)
假设您要检查或取消选中第一个 N复选框(按它们在DOM中显示的顺序),您可以使用slice方法完成此操作:
function allChecked(status, set) {
var checkboxes = $('input[type=checkbox]').slice(0, set);
if (status) {
checkboxes.attr('checked', 'checked');
}
else {
checkboxes.removeAttr('checked');
}
}
答案 2 :(得分:0)
尝试这样的事情
function allChecked(status,set){
alert(set);
if(status)
$('input[type=checkbox]:lt('+set+')').attr('checked','true');
else
$('input[type=checkbox]:lt('+set+')').attr('checked','');
}