模拟多级复选框效果的jquery代码
jquery做了个多级复选框的效果,代码总共就20+行就over了。
我又想用js来做一个看看,才写了几个方法就写不动了,兼容性要考虑很多,而且代码量直线上升。
主要分享下jquery的这个效果的实现。代码块分两块:
一是全选的效果,就是点击全选的复选框时它的子孙都相应被选中或者未选中。这人很好做,代码如下:
evtEle.parent().next(".checks").find("input:checkbox").attr("checked", evtEle[0].checked);//evtEle是点击的复选框
二是当前复选框的父框根据当前框的兄弟是否全选中来决定父框是否选中,再继续往上看父框的父框等。
当全选中时这里的实现使用parents来得到所有的父框,对每一个的操作结合each来完成。
当非全选中时父框依次失去被选中。代码如下:
if (evtEle.is("input:checked")) { evtEle.parents(".checks").each(function () { !$(this).children("p").children("input:checkbox").filter(function () { return !this.checked; })[0] && $(this).prev().children("input:checkbox").attr("checked", "checked"); }); } else { evtEle.parents(".checks").prev().children("input:checkbox").attr("checked", false); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步