js实现选中checkbox

图片描述

  • 选中“根节点”,则: 选中全部

  • 选中“父节点”,则:选中父节点和父节点的所有子节点

  • 选中“子节点”,则:同时选中它的父节点和根节点

  • 取消“根节点”,则: 取消全部 取消“父节点”,则:取消父节点和父节点的所有子节点

  • 取消“子节点”,则:根据其他子节点的选中情况,来判断父节点、根节点是 否应该取消。

这个效果该怎么实现?自己只能实现根节点的全选取消,父节点的全选取消

阅读 3.1k
1 个回答

选中一个节点的时候

向上一直找到根,每个节点设置勾选

遍历子节点及递归子节点,可以用递归也可以用循环实现(参考树的遍历),全部勾选

取消一个节点

找所有兄弟节点,判断是否全部都是取消状态,如果是,取消父节点,通过递归方式继续判断父节点的父节点是否需要取消……

遍历子节点及递归子节点,全部取消

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题