写前端页面时我们可能会需要实现一个全选功能的复选框,如链接 checkall.html 实现的效果,简单描述下实现原理,首先需要 jquery 支持(版本 3.2.1、2.2.4、1.12.4 已验证通过),看下源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| function bindEventForChedkBoxByName(checkAllName, checkSingleName) { var checkAll = $("input:checkbox[name='" + checkAllName + "']"); var checkSingle = $("input:checkbox[name='" + checkSingleName + "']"); var singleCount = $(checkSingle).length;
$(checkAll).change(function (event) { $(checkSingle).prop('checked', $(this).prop('checked')); event.stopPropagation(); });
$(checkSingle).change(function (event) { var selectedSingle = $("input:checkbox[name='" + checkSingleName + "']:checked"); var selectedCount = $(selectedSingle).length; $(checkAll).prop('checked', (selectedCount == singleCount)); event.stopPropagation(); }); } ```
使用步骤:
1. 引入 jquery `<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>` 2. 引入上述代码 3. 在文档加载完后绑定事件。假定全选的 checkbox 名字为`testAll`,单个的为`testSingle`,在 script 模块加入 ```js $(document).ready(function(){ bindEventForChedkBoxByName("testAll","testSingle"); });
|