Jquery 中each循环嵌套的使用示例教程
1、从MVC返回的Json数据如下:
2、下面是客户端实现的示例:
$.post("/admin/GetPermissionsForRole", function (data,status) { if (status == "success") { var ghtml = ""; $.each(data, function (i, items) { //items相当于二维数组里的每一个一维数组 if (items["ParentPermissionId"] == "") { ghtml += "<div class='panel panel-transparent'> <ul class='list-group'>"; ghtml += "<div class='panel-heading'><i class='fa fa-list-ul'></i> <span class='panel-title text-bold'>" + items["PermissionName"] + "</span></div>"; ghtml += "<ul class='list-group'>"; $.each(data, function (i, sitems) { if (sitems["ParentPermissionId"] == items["PermissionId"]) { ghtml += "<li class='list-group-item'>"; ghtml += "<h6 class='text-bold text-semibold text-xs' style='margin:20px 0 10px 0'>"; ghtml += "<label class='px-single'><input type='checkbox' class='px'><span class='lbl'> </span></label> " + sitems["PermissionName"]; ghtml += "</h6>"; ghtml += "<p>"; $.each(data, function (i, ssitems) { if (ssitems["ParentPermissionId"] == sitems["PermissionId"]) { ghtml += "<label class='checkbox'><input type='checkbox' class='px' /><span class='lbl'>" + ssitems["PermissionName"]+ "</span></label>"; } }) ghtml += "</p>"; ghtml += "</li>"; } }) ghtml += "</ul></div>"; } }); $("#premlist").html(ghtml); } })
3、最后要实现的效果如下:
//权限"全选或者取消"功能代码,此代码必须要放在append()的后面,不然不起作用 var xsChk = 'px';//定义的样式 var xsChkAll = "input[type='checkbox'][class='" + xsChk + "'][name]";//所有定义此样式的checkbox $(xsChkAll).each(function () { var name = $(this).attr("name"); name = "input[type='checkbox'][class!='" + xsChk + "'][name='" + name + "']";//此全选框下面的子checkbox $(this).on('click', function () { $(name).attr("checked", $(this)[0].checked); }) var xschk = $(this); $(name).on('click', function () { var IAll = $(name).length; //此子项目下所有checkbox的个数 var IChk = $(name + ":checked").length; //此子项目下所有勾选checkbox的个数 var isAllChecked = true; //是否是全选 if (IAll != IChk) { isAllChecked = false; } $(xschk).attr("checked", isAllChecked); }); }); //会选或者取消功能结束
微信号:jamesworkshop 学习QQ群:364976091
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理