iview tree 获取选中子节点的整条数据链
这样子获取到数据是,checked等于true的,获取不到他的父级,父级的父级
解决办法代码如下:
//需要有一个唯一ID
//======================================
//扩展remove方法
Array.prototype.remove = function (val) {
let index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};
//======================================
//获取整条数据链
function getParent(array, childs, ids) {
for (let i = 0; i < array.length; i++) {
let item = array[i];
if (Number(item.id) === Number(ids)) {
childs.push(item);
return childs;
}
if (item.children && item.children.length > 0) {
childs.push(item);
let rs = getParent(item.children, childs, ids);
if (rs) {
return rs;
}
else {
childs.remove(item);
}
}
}
return false;
} //获取所有选中节点
let params = this.$refs.tree.getCheckedNodes();
//所有数据
let allData = ['所有数据'];
//循环执行所有选中的节点链,放到arr1数组里
let arr1 = [];
for (let i = 0; i < params.length; i++) {
//单条数据链
let aData = getParent(allData, [], params[i].id);//方法入口在这里
for (let y = 0; y < aData.length; y++) {
//拆分成单个json数组放到arr1里
arr1.push(aData[y]);
}
} //arr1去重 es6的set方法
function dedupe(array) {
return Array.from(new Set(array));
} arr1 = dedupe(arr1);
这样就能获取完整的整条数据链
iview tree 获取选中子节点的整条数据链的更多相关文章
- EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中
需求:EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中 效果: /** * 给树增加onCheck事件,首先使用cascadeCheck:false属性禁止全选, ...
- tree 向下查找 (删除整条tree)
需求:通过点击获取需要删除的id(即获取到整条信息),如果该条数据没有子集,通过id删除即可,如果有子集,则该数据下所有的子集都需要删 删除后页面的数据更新在 下一篇 讲解 1 const id =' ...
- easyui tree获取直接子节点而不获取孙子节点方法
$(node.target.nextElementSibling).children().each(function(index,ele){ if(checked){ $('#rcDimTreeRow ...
- asp.net 实现treeview 选中父节点其子节点也选种中 选中子节点其父节点与根节点也被选中
1.在 Page_Load(object sender, EventArgs e) 里面加入: TreeView1.Attributes.Add("onclick", " ...
- IT小鲜肉 Widgets Tree 单选、多选、相关回调函数、获取选中的节点功能
写一个树控件并没有想象中的那么容易,今天又花了我一个1个多小时,主要为IT小鲜肉 Widgets Tree控件添加了 单选.多选.选择前和选择后两个回调函数.获取选中节点的功能.后面会继续努力完善这个 ...
- Jquery EasyUI Combotree和 EasyUI tree展开所有父节点和获取完整路径
Jquery EasyUI Combotree展开所有父节点 Jquery EasyUI Combotree获取树完整路径 Jquery EasyUI tree展开所有父节点 Jquery EasyU ...
- 获取$(this)子节点对象的方法
获取$(this)子节点对象的方法: 1.children()方法: children() 方法返回被选元素的所有直接子元素. 该方法只会向下一级对 DOM 树进行遍历. 2.find()方法: fi ...
- jQuery DataTables 获取选中行数据
如题 想获取操作 DataTables 获取选中行数据 案1.主要是利用 js getElementsByTagName 函数 然后对获取到的tr 进行操作 如下 function getChec ...
- ztree 获取CheckBox选中节点时,不获取选中上级父节点
//将第三个参数改为false,表示不去勾选父节点下的所有子节点 zTreeObj.checkNode(node, true, false); setting.check.chkboxType = { ...
随机推荐
- STL 序列容器
转自时习之 STL中大家最耳熟能详的可能就是容器,容器大致可以分为两类,序列型容器(SequenceContainer)和关联型容器(AssociativeContainer)这里介绍STL中的各种序 ...
- 【学亮IT手记】jQuery text()/html()回调函数实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- Docker部署运行springboot项目,并使用Dockerfile制作镜像
前言: 本来是要搭建一个自动化部署分布式项目的服务器平台的,使用jenkins+k8s+ELK+springboot把一个简单的springboot项目给搞起来,由于工程太大,先分开把每个技术组件单独 ...
- ubuntu18.04 安装 php7.2
sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository p ...
- 谈谈对C#中反射的一些理解和认识(下)
在上一篇中我们列举了一些反射的常规的使用,这一篇我们将介绍一些关于关于反射的高级属性,这些包括创建对反射的性能的总结以及如何优化反射性能,以及通过InvokeMember的方法如何去调用反射等等,通过 ...
- Python2.7从入门到精通
快速入门 1.程序输出print语句 (1)使用print语句可查看对象的值:在交互式解释器使用对象本身则输出此对象的字符串表示: (2)使用print语句调用str()显示对象:在交互式解释器使用对 ...
- 1064 - You have an error in your SQL syntax;
mysql 1064 错误: SQL语法错误,check the manual that corresponds to your MySQL server version for the right ...
- SQL 添加索引
使用CREATE 语句创建索引 CREATE INDEX index_name ON table_name(column_name,column_name) include(score) 普通索引 C ...
- SQL Server 一张图让你秒懂联合表查询
- 洛谷 P1484 种树
题目描述 cyrcyr今天在种树,他在一条直线上挖了n个坑.这n个坑都可以种树,但为了保证每一棵树都有充足的养料,cyrcyr不会在相邻的两个坑中种树.而且由于cyrcyr的树种不够,他至多会种k棵树 ...