news 2026/5/27 15:03:04

jQuery EasyUI 树形菜单 - 树形菜单添加节点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
jQuery EasyUI 树形菜单 - 树形菜单添加节点

下面直接给你最实用、最常见的树形菜单添加节点方法,jQuery EasyUI 的tree组件支持超级灵活的动态添加节点(新增根节点、新增子节点、插入同级节点等),复制粘贴就能用,领导最爱的“动态部门树新增、菜单管理新增节点、分类无限添加”效果全都有!

方法1:最简单最常用 - 添加子节点(推荐现在就用这个)

<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>EasyUI 树形菜单 - 添加节点</title><linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/default/easyui.css"><linkrel="stylesheet"type="text/css"href="https://www.jeasyui.com/easyui/themes/icon.css"><scripttype="text/javascript"src="https://code.jquery.com/jquery-1.12.4.min.js"></script><scripttype="text/javascript"src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script></head><body><divstyle="margin:20px;"><divstyle="margin-bottom:10px;"><ahref="javascript:void(0)"class="easyui-linkbutton c6"iconCls="icon-add"onclick="appendChild()">在选中节点下添加子节点</a><ahref="javascript:void(0)"class="easyui-linkbutton"iconCls="icon-add"onclick="appendSibling()">在选中节点后添加同级节点</a><ahref="javascript:void(0)"class="easyui-linkbutton c3"iconCls="icon-add"onclick="appendRoot()">添加根节点</a><ahref="javascript:void(0)"class="easyui-linkbutton c1"iconCls="icon-remove"onclick="removeNode()">删除选中节点</a></div><ulid="tt"class="easyui-tree"data-options="lines:true, animate:true"><li><span>系统管理</span><ul><li><span>用户管理</span></li><li><span>角色管理</span></li></ul></li><li><span>商品管理</span></li><li><span>订单管理</span></li></ul></div><script>// 获取当前选中节点functiongetSelectedNode(){varnode=$('#tt').tree('getSelected');if(!node){$.messager.alert('提示','请先选中一个节点!','warning');returnnull;}returnnode;}// 方法1:添加子节点(最常用)functionappendChild(){varnode=getSelectedNode();if(!node)return;varnewNode={text:'新节点',iconCls:'icon-folder'};$('#tt').tree('append',{parent:node.target,// 关键:指定父节点data:[newNode]});// 自动展开父节点并选中新节点$('#tt').tree('expand',node.target);varaddedNode=$('#tt').tree('find',newNode.id);// 如果没id,可以用其他方式定位if(addedNode){$('#tt').tree('select',addedNode.target);}}// 方法2:添加同级节点(插入到选中节点之后)functionappendSibling(){varnode=getSelectedNode();if(!node)return;varnewNode={text:'新同级节点'};$('#tt').tree('append',{parent:$('#tt').tree('getParent',node.target),// 获取父节点data:[newNode]});}// 方法3:添加根节点functionappendRoot(){varnewNode={text:'新根节点',state:'closed',// 默认折叠iconCls:'icon-setting'};$('#tt').tree('append',{parent:null,// parent 为 null 表示根节点data:[newNode]});}// 方法4:删除选中节点functionremoveNode(){varnode=getSelectedNode();if(!node)return;$.messager.confirm('确认','确定删除节点 "'+node.text+'" 及其所有子节点吗?',function(r){if(r){$('#tt').tree('remove',node.target);}});}</script></body></html>

效果亮点:

  • “在选中节点下添加子节点”:最常用,部门树新增下级部门
  • “添加同级节点”:插入到当前节点后面
  • “添加根节点”:新增一级菜单
  • 支持删除节点(带确认)
  • 新节点自动展开并选中

方法2:异步树中添加节点(结合后台保存)

functionappendChildAsync(){varnode=getSelectedNode();if(!node)return;// 先本地添加(乐观更新)vartempNode={text:'新建节点(保存中...)'};$('#tt').tree('append',{parent:node.target,data:[tempNode]});// 发请求保存到服务器$.post('add_node.php',{parent_id:node.id,name:'新节点'},function(res){if(res.success){// 更新节点为服务器返回的真实数据varaddedNode=$('#tt').tree('find',tempNode.id);// 临时节点$('#tt').tree('update',{target:addedNode.target,text:res.node.name,id:res.node.id,iconCls:res.node.icon});$.messager.show({title:'成功',msg:'节点添加成功'});}else{// 失败回滚$('#tt').tree('remove',addedNode.target);$.messager.alert('错误',res.msg);}},'json');}

方法3:插入节点到指定位置(insert 方法)

// 在选中节点之前插入$('#tt').tree('insert',{before:node.target,data:{text:'插入到前面'}});// 在选中节点之后插入$('#tt').tree('insert',{after:node.target,data:{text:'插入到后面'}});

方法4:右键菜单添加节点(更专业)

$('#tt').tree({onContextMenu:function(e,node){e.preventDefault();$('#mm').menu('show',{left:e.pageX,top:e.pageY});$('#tt').tree('select',node.target);}});// 右键菜单HTML<div id="mm"class="easyui-menu"><div onclick="appendChild()"iconCls="icon-add">添加子节点</div><div onclick="appendSibling()"iconCls="icon-add">添加同级节点</div><divclass="menu-sep"></div><div onclick="removeNode()"iconCls="icon-remove">删除节点</div></div>

你现在直接复制方法1的完整代码运行,就能看到一个支持动态添加/删除节点的树形菜单了!
特别适合:菜单管理、部门组织架构、商品分类管理等需要动态增删的场景。

想要我给你一个完整的示例(异步树 + 添加节点 + 右键菜单 + 保存到服务器)?
或者你告诉我你想怎么添加(比如“弹窗输入节点名称”“拖拽排序后添加”“批量导入”),我2分钟发你精准代码,复制就能跑!

快说说你的具体需求,我手把手帮你搞定,5分钟内看到完美动态添加节点效果!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 8:23:28

jQuery EasyUI 树形菜单 - 创建基础树形网格

jQuery EasyUI 树形网格&#xff08;TreeGrid&#xff09; - 创建基础树形网格 jQuery EasyUI 的 TreeGrid&#xff08;树形网格&#xff09;是基于 DataGrid 扩展的组件&#xff0c;用于显示带有层级关系的表格数据。它结合了树视图&#xff08;Tree&#xff09;和可编辑网格…

作者头像 李华
网站建设 2026/5/27 8:55:08

jQuery EasyUI 树形菜单 - 树形网格添加分页

jQuery EasyUI 树形网格&#xff08;TreeGrid&#xff09; - 添加分页 jQuery EasyUI 的 TreeGrid 继承自 DataGrid&#xff0c;因此支持 pagination: true 属性来启用分页功能。但由于 TreeGrid 是层级结构&#xff0c;分页通常只针对顶级根节点进行&#xff08;子节点通过动…

作者头像 李华
网站建设 2026/5/26 5:23:41

Kotaemon如何应对文化差异?本地化适配策略分析

Kotaemon如何应对文化差异&#xff1f;本地化适配策略分析 在智能客服系统走向全球的今天&#xff0c;一个看似简单的用户提问——“我能不能退货&#xff1f;”——背后可能隐藏着巨大的文化鸿沟。在日本&#xff0c;这或许是一句含蓄的情绪表达&#xff1b;在德国&#xff0c…

作者头像 李华
网站建设 2026/5/26 9:08:49

IM即时通讯系统:安全可控、功能全面的社交解决方案全解析

在数字化社交时代&#xff0c;即时通讯&#xff08;IM&#xff09;系统已成为社交平台的核心基础设施。本文将深入解析开源IM系统的核心优势与功能亮点&#xff0c;为开发者提供一套安全可控、功能全面的社交解决方案。一、核心优势&#xff1a;安全与性能的双重保障1. 独立数据…

作者头像 李华
网站建设 2026/5/27 17:33:40

扭蛋机小程序开发制作!

扭蛋机便是盲盒的另一种形式&#xff0c;目前国内消费市场主要集中在互联网上&#xff0c;玩家在手机上就可以体验抽盲盒的乐趣&#xff0c;因此线上盲盒扭蛋机小程序的出现也是顺应市场发展。扭蛋机里面的盲盒商品一般是手办等&#xff0c;盲盒种类繁多&#xff0c;玩家可以抽…

作者头像 李华
网站建设 2026/5/27 7:34:58

英文论文写作工具推荐:8大AI+翻译润色排名+

英文论文写作工具推荐&#xff1a;8大AI翻译润色排名 &#xfffd;&#xfffd; 8款英文论文AI写作工具核心对比 工具名称 核心功能 处理速度 适合场景 独特优势 aibiye 降AIGC率查重 20分钟 学术论文优化 适配知网/维普检测规则 aicheck AIGC检测降重 20分钟 AI…

作者头像 李华