使用按钮而不是复选框来选中jquery中的所有复选框
当前,选中id为#checkall的复选框时,使用以下选项选择所有复选框使用按钮而不是复选框来选中jquery中的所有复选框,jquery,Jquery,当前,选中id为#checkall的复选框时,使用以下选项选择所有复选框 <script type="text/javascript"> $(function () { $('#checkall').click(function () { $(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked); }); }); </script>
<script type="text/javascript">
$(function () {
$('#checkall').click(function () {
$(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
});
});
</script>
$(函数(){
$('#checkall')。单击(函数(){
$(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked',this.checked));
});
});
如何更改此选项以允许使用按钮而不是复选框?
我试着在html中切换它们,但它似乎不起作用。这里就是这一点
attr('checked', this.checked);
按钮没有选中的属性
尝试使用element.data
保存当前选中状态的值
例如,在页面初始化中设置
$('#checkall').data(“checked”,“false”)
,然后在后续调用中检查该值,并将其切换到相反的值…您的问题是,您仍然在使用“this.checked”,按钮将永远不会被选中。您将不得不使用“切换”功能。问题可能出在您的
, this.checked
也就是说,按钮没有选中状态您仍然使用它。在
attr(…)
代码中选中它当然不起作用,因为它现在是一个按钮,不再是复选框。以下内容将当前“选中”状态存储在按钮的数据属性中,从而允许您像以前一样切换复选框
$('#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);
});
我做了两件事:
- 复选框的当前状态存储在
变量中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);
});
})();
给每个小组上一节课,然后
$(".yourclass").attr("checked","true");
HTML示例将非常有用+1-这将比使用“切换”更好,因为不使用按钮就可以取消选中复选框。当您可以简单地将选中的值存储在本地可访问变量中时,为什么要使用
data()
呢?我同意J-P.data()我不知道关于.data()的约定是什么,但作为一个简单的经验法则,我使用.data()来存储与元素有关的任何数据。。存储为本地变量是可以的,但是如果您需要函数范围之外的特定变量的值,该怎么办呢。事实上,我相信这是最好的方法,不必求助于全局变量。。。
$(".yourclass").attr("checked","true");