Javascript - 如何检查 "certain"复选框而不是全部使用我当前的代码?

标签 javascript

所以我在一页上弹出了两个表格。这是我之前用来选择第一个表中的所有复选框(当时是唯一一个)的脚本:

<script>
  $('#selectAll').click(function() {
   if(this.checked) {
     $(':checkbox').each(function() {
       this.checked = true;                        
     });
   } else {
    $(':checkbox').each(function() {
     this.checked = false;                        
   });
  } 
});
</script>

如何将其更改为更具体?我是否需要将特定的类或 ID 属性添加到复选框才能使它起作用?

最佳答案

假设两个表都有类.table。适用于两个表的优化脚本版本如下所示:

$('.table').on('click', '.selectAll', function(e) {
    $(':checkbox', e.delegateTarget).prop('checked', this.checked);
});

注意事项:

  1. 您的全选复选框必须具有 class .selectAll 而不是 id #selectAll

  2. 使用 .on 方法,我们将一个单击事件处理程序绑定(bind)到表,当单击 .selectAll 时触发。 e.delegateTarget 指向当前表的 DOMElement。那么$(':checkbox', e.delegateTarget) 表示在当前表中查找复选框

  3. 您可以使用 jQuery 的 prop 方法来代替使用 each 方法循环并设置 checked = true/false但更简洁。

演示:http://jsfiddle.net/pkp7osfn/

关于Javascript - 如何检查 "certain"复选框而不是全部使用我当前的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26682929/

相关文章:

javascript - 如何替换 JavaScript 中同一 H1 元素中的变量值?

javascript - 设置模板中的日期格式以在 GMT 时区中显示

javascript - ajaxStart 取消 jQuery 自动完成

javascript - 在 Vue 中有通用的方式来表示 "not interacted with yet"吗?

javascript - 如何设置传单中的图像偏移?

javascript - 如何使用 jquery 设置页面加载的默认选项卡?

javascript - 等列 jQuery

javascript - 使用不记名 token 在 JavaScript 中加载图像

javascript - 单击时更改另一个元素的 Z 索引

javascript - 如何让文本不超出div范围