当选中ID为#checkall的复选框时,目前使用以下选项选中所有复选框。
<script type="text/javascript">
$(function () {
$('#checkall').click(function () {
$(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
});
});
</script>
如何更改此设置以允许使用按钮而不是复选框? 我试过在html中将它们切换出来,但它似乎没有用。
答案 0 :(得分:2)
这就是这里的
attr('checked', this.checked);
按钮没有checked
属性
尝试使用element.data
来保存当前检查状态的值
例如,在页面初始化时设置$('#checkall').data("checked","false")
,然后在后续调用中检查该值是什么,并将其切换为相反的...
答案 1 :(得分:0)
你的问题是你还在使用“this.checked”,永远不会检查按钮。您必须使用“切换”功能。
答案 2 :(得分:0)
问题可能在你的
中, this.checked
即。按钮没有检查状态
答案 3 :(得分:0)
你仍然在attr(...)
代码中使用this.checked,这当然不会起作用,因为现在这是一个按钮,而不再是一个复选框。以下内容将当前“已检查”状态存储在按钮的数据属性中,因此您可以像以前一样切换复选框
$('#checkall').click(function () {
var ele = $(this);
var checked = ele.data("checked");
checked = checked == undefined ? true : checked;
$(this)
.data("checked", !checked)
.parents('fieldset:eq(0)')
.find(':checkbox')
.attr('checked', checked);
});
答案 4 :(得分:0)
var checked = false;
var checkAll = $('#checkall');
var checkboxes = checkAll.parents('fieldset:eq(0)').find(':checkbox');
checkAll.click(function () {
checkboxes.attr('checked', checked = !checked);
});
我做了两件事:
checked
变量中。checkAll
按钮时设置属性。而且,如果您担心全局变量,那么只需将其全部包含在自己的范围内:
(function(){
var checked = false;
var checkAll = $('#checkall');
var checkboxes = checkAll.parents('fieldset:eq(0)').find(':checkbox');
checkAll.click(function () {
checkboxes.attr('checked', checked = !checked);
});
})();
答案 5 :(得分:0)
给每个小组一个特定的班级,然后做
$(".yourclass").attr("checked","true");