javascript - 包含表选择器问题的 Jquery 复选框

标签 javascript asp.net jquery css-selectors

我当前的代码:

<script type="text/javascript">
    function checkAll(checked) {
        $("input[type='checkbox']:not([disabled='disabled'])").attr('checked', checked);
    }
</script>
<input type="checkbox" id="cbxSelectAll" onclick="checkAll(this.checked);" />

简短版:

我如何修改上面的函数调用和方法以选中包含 checxbox 表单元素的表中的所有复选框。

长版:

我正在 asp.net 中创建一个包含 GridView 的 WebUserControl,它将有一个删除选项。我希望删除是一系列复选框,标题中有一个框可以选择所有复选框。对于非 ASP.NET 用户来说,这相当于一个表,表头行有一个复选框,每一行也有一个 checxbox。

我已经使用上面的代码选中了整个页面上的所有框。但这在这里行不通,因为我想在页面上同时拥有多个,每个独立工作。我知道我可以使用选择器来选择所有框,如果我对表格进行了 ID,但这将需要一些编码来唯一地命名表格,然后将该名称放入脚本 block 中。

我真正想要的是修改上面的脚本以选中“全选”框的包含表中的所有复选框。包含复选框的表可以嵌套在其他表中,但我没有看到任何嵌套在其中,或者如果有并且嵌套表也包含 checxboxes 我不在乎它们是否也被选中。

感谢您的帮助。

最佳答案

首先,不要混合使用 HTML 和 Javascript。请改用事件处理程序绑定(bind)。

其次,使用closest获取特定类型的最近祖先元素:

$(document).ready(function(){
    $('#cbxSelectAll').click(function() {
        $(this)
            .closest('table') // get the parent table element
            .find("input:checkbox:enabled") // find children that match the selector
            .attr('checked', this.checked); // set their checked value
    });
});

关于javascript - 包含表选择器问题的 Jquery 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4797262/

相关文章:

javascript - 当用户尝试删除 indexedDB 数据库时,有没有办法执行函数?

asp.net - 当谈论MEF时我们到底应该理解什么

Jquery 模板不渲染单个项目

javascript - 样式 facebook likebox 滚动条

javascript - 如何在 WordPress 中根据视口(viewport)大小提供不同大小的图像?

javascript - 如何使用jQuery取消选择多项选择中的选定选项

javascript - 如果 X 在一个数字范围内,我如何为 X 分配一个数字?

asp.net - 更改 varchar 最大长度后,我是否必须更新 Entity Framework

javascript - 停止滚动条增长

javascript - 如何将 jQuery .load 方法与 jsfiddle 回显功能结合使用?