I need help with jQuery selectors. Say I have a markup as shown below:

<form>
  <table>
    <tr>
      <td><input type="checkbox" id="select_all" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
  </table>
</form>

当用户点击时,如何获得除#select_all之外的所有复选框?

推荐答案

一个更完整的例子应该适用于您的情况:

$('#select_all').change(function() {
  var checkboxes = $(this).closest('form').find(':checkbox');
  checkboxes.prop('checked', $(this).is(':checked'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <table>
    <tr>
      <td><input type="checkbox" id="select_all" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
  </table>
</form>

单击#select_all复选框时,复选框的状态被选中,并且当前表单中的所有复选框都被设置为相同的状态.

请注意,您不需要从 Select 中排除#select_all复选框,因为它将与所有其他复选框具有相同的状态.如果您出于某种原因确实需要排除#select_all,您可以使用以下命令:

$('#select_all').change(function() {
  var checkboxes = $(this).closest('form').find(':checkbox').not($(this));
  checkboxes.prop('checked', $(this).is(':checked'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <table>
    <tr>
      <td><input type="checkbox" id="select_all" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
    <tr>
      <td><input type="checkbox" name="select[]" /></td>
    </tr>
  </table>
</form>

Jquery相关问答推荐

ASP.NET Core 8 MVC:从jQuery发布控制器中的所有值为空

如何使用 jQuery 的 drop 事件上传从桌面拖动的文件?

jQuery中的多个 Select 器链接?

如何知道所有ajax调用何时完成

如何使用 jQuery 重置 jquery Select 的 Select 选项?

如何在 HTML选项标签上显示工具提示?

如何使用 jquery 更改 onclick 事件?

jquery beforeunload 关闭(不离开)页面时?

jQuery.extend 和 jQuery.fn.extend 的区别?

jQuery:value.attr 不是函数

为 jQuery AJAX 调用实现加载指示器

覆盖 twitter bootstrap Textbox Glow and Shadows

jQuery:如何创建一个简单的叠加层?

通过单击按钮获取表格行的内容

无法更新数据属性值

IE8 和 JQuery 的 trim()

在 jquery 中使用 AJAX Post 从强类型 MVC3 视图传递模型的正确方法

如何获得两个日期对象之间的小时差?

我应该在addClass之前使用hasClass吗?

使用 TypeScript 设置 window.location