ztree的如何只获得完全选中的checkbox

发布于 2021-11-06 01:58:19 字数 168 浏览 878 评论 11

如图,用getCheckedNodes()方法连“八三西里”也返回,如何只返回完全选中的checkbox?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

策马西风 2021-11-08 17:59:27

请教下,在3.0中怎么直接获取完全被选中的节点呢?3.0中有提供这样的属性或者函数么,貌似treeNode[x].check_True_Full在3.0中已经没有了

冷弦 2021-11-08 17:58:15

找到原因了。犯了低级错误,应该是treeNode[x]写成treeNode了。呵呵!

鹤舞 2021-11-08 17:55:08

你的 if条件有问题 (treeNode.nodes || treeNode.nodes.length != 0) 一旦有nodes但是nodes = [] 就不会进行后面的length比较了。

如果确认 有子节点的父节点应该这么判断: (treeNode.nodes && treeNode.nodes.length > 0)

成熟的代价 2021-11-08 17:45:21

按照“dyhunter”的提示半选问题解决了,现在还有数据重复问题,虽然不影响正常使用。

首先通过treeNode.check_True_Full == true只选择全选的节点,然后想去掉全选并且子节点全选的节点,可是好像不起作用。

var treeNode = parent.frtree.zTreeObj.getCheckedNodes();
for (x in treeNode) {
	if (treeNode[x].check_True_Full && !(treeNode.isParent && 
		(treeNode.nodes || treeNode.nodes.length != 0))) {
		if (treeNode[x]["type"] == "root") {
			IDs = nhfx.getno("", "root").value;
			break;
		}
		if (treeNode[x]["type"] == "house") {
			IDs += "'" + treeNode[x]["no"] + "',";
		} else {
			IDs += nhfx.getno(treeNode[x]["no"], 
							treeNode[x]["type"]).value;
		}
	}
}
看透却不说透 2021-11-08 17:32:12

引用来自“dyhunter”的答案

关于半选节点,在3.0中能提供简单判断的方法,2.6只好你自己判断了,treeNode.checked=true && treeNode.check_True_Full = false 就是半选节点,你可以在 getCheckedNodes方法得到的结果中自行过滤一下,就可以了;

补充一下,在百度空间上你问的问题和你这个还不完全一样,至少详细程度不一样,看你这个需求,你应该是希望将打钩的、且没有加载子节点的父节点获取下来,那么只需要看看 getCheckedNodes方法中的节点 treeNode.isParent == true && (!treeNode.nodes || treeNode.nodes.length==0) 满足这种的都是父节点且未加载过子节点的。 

如果还有问题就继续沟通吧

瑾兮 2021-11-08 17:25:02

楼上的是ZTREE开发团队的~

明媚如初 2021-11-08 17:17:13

不是这样的,因为用的ajax方法,需要重新读数据库。 如果一次加载可以按照你说的方法。

奢华的一滴泪 2021-11-08 12:00:06

然后你过滤一下,如果这个节点不是子节点,就直接忽略掉

孤独患者 2021-11-08 04:24:04

着急啊!怎么办啊?

由于使用的ajax方法,在选中节点还没展开的情况下需要重新读数据库,可是如果连半选的节点都包含的话会得到不必要的数据。极端情况,只要有一个子节点被选中,那么根节点就会半选,导致查询所有数据。

高跟鞋的旋律 2021-11-06 23:45:08

up!

别再吹冷风 2021-11-06 12:21:22

太感谢了!这两天一直被这个问题困扰,老大逼着赶快完成项目,差点就要放弃了,还好现在不算太晚。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文