jQuery MiniUI

标题: mini-tree [打印本页]

作者: 乐乐乐    时间: 2018-10-29 14:58:46     标题: mini-tree

我想要判断如果是直接选中父节点,那么意味着改父节点的所有子节点也被选中,这时我只要取到父节点的值,如果选了子节点的某些值,没有全部选中子节点,这个时候要渠道所有选中的子节点的值,应该怎么办???

作者: dforce    时间: 2018-10-29 15:21:26

本帖最后由 dforce 于 2018-10-29 15:55 编辑

不太理解你的意思,请准确描述一下。
tree.getCheckedNodes()   //不加参数就是获取所有选择选中的节点,不管是父节点还是子节点

作者: 乐乐乐    时间: 2018-10-29 15:40:32

dforce 发表于 2018-10-29 15:21
不太理解的的意思,请准确描述一下。
tree.getCheckedNodes()   //不加参数就是获取所有选择选中的节点,不 ...

你好版主,我的意思是如果某个父级的所有子级都选中的话,我只取这个父级的值,子级不要;  如果某个父级的子级部分选中了,部分没有选,我就取选中的子级,而不取父级
作者: dforce    时间: 2018-10-29 16:05:02

乐乐乐 发表于 2018-10-29 15:40
你好版主,我的意思是如果某个父级的所有子级都选中的话,我只取这个父级的值,子级不要;  如果某个父级 ...

这只能获取所有选中节点,然后再遍历处理了。
  1. var nodes=tree.getCheckedNodes();
  2. for(....){
  3.     if(tree.isLeaf(nodes[i])){
  4.                如果是父节点,那个获取他的所有子节点,如果所有子节点都选中,则不处理,如果并不是所有子节点都选中,那么nodes里面去掉这个父节点
  5.     }else{
  6.               如果是子节点,那么获取他的父节点,通过父节点获取有下一级子节点,判断是不是所有子节点都选中, 如果都选中,那么nodes里面里面去掉这个子节点
  7.    }
  8. }
复制代码


作者: 乐乐乐    时间: 2018-10-30 11:32:11

dforce 发表于 2018-10-29 16:05
这只能获取所有选中节点,然后再遍历处理了。

哦哦  大概逻辑我知道了  那我怎么判断是不是所有的子节点都选中了呢??
作者: dforce    时间: 2018-10-30 13:25:51

乐乐乐 发表于 2018-10-30 11:32
哦哦  大概逻辑我知道了  那我怎么判断是不是所有的子节点都选中了呢?? ...
  1. var  nodes=tree.getChildNodes();
  2. var isAllChecked=true;
  3. for(....){
  4.      var  ischecked=tree.isCheckedNode(nodes[i])
  5.      if(!isChecked){
  6.         isAllChecked=false;
  7.      }
  8. }
复制代码

作者: 乐乐乐    时间: 2018-10-30 17:00:17

dforce 发表于 2018-10-30 13:25

嗯嗯  感谢版主  上面的问题解决了  还有一个问题   怎么给一个树去赋值    就像其他控件的setValue()  一样的功能的
作者: felt    时间: 2018-10-31 09:13:12

乐乐乐 发表于 2018-10-30 17:00
嗯嗯  感谢版主  上面的问题解决了  还有一个问题   怎么给一个树去赋值    就像其他控件的setValue()   ...

可以使用setValue(value,false)
作者: 乐乐乐    时间: 2018-10-31 09:38:05

felt 发表于 2018-10-31 09:13
可以使用setValue(value,false)

你好,我刚才试了下setValue可以给控件赋值,但是并没有已勾选的效果
作者: felt    时间: 2018-10-31 10:34:32

乐乐乐 发表于 2018-10-31 09:38
你好,我刚才试了下setValue可以给控件赋值,但是并没有已勾选的效果

http://www.miniui.com/demo/#src=tree/checkboxtree.html
可以的,你看这个示例
setCheckedNode方法就是用setValue的




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2