【问题标题】:How to select all checkboxes with class "xxx"?如何选择“xxx”类的所有复选框?
【发布时间】:2010-06-13 12:01:43
【问题描述】:

欢迎,

是否可以选择所有复选框/取消选中所有具有“xxx”类的复选框?

我不能使用“name”和“ID”,因为它们是通过 PHP 动态生成的,我不知道它们的名字。

所以也许我可以为这些我无法控制的添加类“xxx”?

有可能吗?

或者,如果不可能的话。 再见,我可以选择所有/取消选择 id 为“selectall”的表内的内容?

问候

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    以下是使用 jquery 的 attr 方法的方法:

    $('input.xxx').attr('checked', 'checked');
    

    这会找到所有类 xxx 的输入元素并检查它们。要取消选中它们,您可以这样做:

    $('input.xxx').attr('checked', false);
    

    对于 ID 为 selectall 的表格中的复选框,您可以这样做:

    $('table#selectall :checkbox').attr('checked', 'checked');
    

    要取消选中它们,您应该这样做:

    $('table#selectall :checkbox').attr('checked', false);
    

    或者:

    $('table#selectall :checkbox').removeAttr('checked');
    

    【讨论】:

    • 谢谢 :) 真的很有帮助 :) 你解决了我的问题 ;)
    • 我只有一个问题。是否可以对 xxx 使用变量?变量xxx; xxx='某事';以及如何在这里使用它 $('input.xxx')
    • @marc - 使用 .filter(), var class = '.xxx'; $('input').filter(class).attr(...
    • @marc:是的,你也可以在那里使用一个变量,你可以像$('input.' + varname) 一样把它放进去
    • 谢谢。完整的工作代码是 function select_all($where) { $where='.'+$where; $('input').filter($where).attr('checked', 'checked'); }
    【解决方案2】:

    选中所有“xxx”类的复选框:

    $('.xxx:checkbox').attr('checked','checked');
    

    您可以使用.removeAttr('checked') 取消选择它们。

    选中一个id为“selectall”的元素内的所有复选框:

    $('#selectall :checkbox').attr('checked','checked');
    

    【讨论】:

    • @Nick:好点。在我看到你的评论之前,我已经删除了它。 :)
    【解决方案3】:

    如果这是“全选”,您可以这样做:

    $("#selectAll").change(function() {
      $(".xxx:checkbox").attr('checked', this.checked);
    });
    

    You can test a simple demo here,当您选中它时,所有.xxx 复选框都会被选中,而当您取消选中它时,这通常是您想要在顶部的“选中/取消选中所有”框中的内容。

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 2016-05-13
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      相关资源
      最近更新 更多