news 2026/4/18 8:03:20

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/4/16 18:32:09

AI智能体的核心引擎:知识库构建全流程详解(建议收藏)

本文详细介绍了AI知识库作为智能体"认知大脑"的核心价值&#xff0c;阐述了其三层组成要素&#xff08;事实层、规则层、语义层&#xff09;及与智能体的交互逻辑。通过未来智安的实践案例&#xff0c;展示了AI知识库如何实现快速威胁定位、持续学习沉淀和人机协同优…

作者头像 李华
网站建设 2026/4/16 14:23:03

四端互通与高并发:下一代即时通讯系统的核心技术解析

在当前数字化时代&#xff0c;即时通讯系统已成为人们日常沟通的重要工具。一套优秀的即时通讯解决方案需要实现PC端、Web端、iOS和Android四端无缝互通&#xff0c;同时能够应对海量用户并发访问的挑战。本文将深入探讨实现这一目标的核心技术方案。全平台覆盖的架构设计现代即…

作者头像 李华
网站建设 2026/4/17 19:09:16

两大神器助你一键本地部署大模型,小白也能秒变专家

文章介绍了本地部署大模型的四大必要性&#xff1a;数据隐私安全、摆脱网络依赖、降低长期成本、个性化定制。推荐了两款工具&#xff1a;DS本地部署大师&#xff0c;提供图形化界面和内置模型&#xff0c;一键安装使用&#xff1b;聪明灵犀&#xff0c;支持硬件监控、参数调优…

作者头像 李华
网站建设 2026/4/18 8:00:51

Agentic AI崛起——从LLM到自主智能体的技术革命

本文系统梳理了从LLM到Agentic AI的技术演进历程&#xff0c;从Agent概念溯源出发&#xff0c;分析了单智能体的局限性与多智能体的协作优势&#xff0c;阐述了Agentic AI的核心特征与本质内涵。文章指出&#xff0c;技术组合带来的能力涌现是推动AI从被动对话工具向主动智能伙…

作者头像 李华
网站建设 2026/4/13 2:39:49

2025.12.21论文阅读

2025.12.18 论文阅读一、文献阅读题目信息摘要创新点理论基础量子比特与纠缠量子求解器实验非线性方程积分与副本数验证与经典系综预测的对比结论不足与展望一、文献阅读 题目信息 题目&#xff1a; 《Quantum Computers for Weather and Climate Prediction: The Good, the …

作者头像 李华
网站建设 2026/3/28 8:32:02

说说Redis的内存淘汰策略?

大家好&#xff0c;我是锋哥。今天分享关于【说说Redis的内存淘汰策略&#xff1f;】面试题。希望对大家有帮助&#xff1b; 说说Redis的内存淘汰策略&#xff1f; 超硬核AI学习资料&#xff0c;现在永久免费了&#xff01; Redis 的内存淘汰策略&#xff08;Eviction Policy…

作者头像 李华