jq实现循环遍历树形结构的CheckBox根据父级选中子级
2017-06-23 16:13
411 查看
首先贴一张需要实现是效果图(这树形结构用的是easyui的),这效果是用jq实现的,数据是后台查询出来,并实例化到前台,再循环遍历
后台查询出来的数据本来是这样的:
这样的二维数组是不够的,需要我们处理一下:
这样处理之后我们的数组就变成了这样结构:
里面的数据是根据你的需要进行更改。
HTML布局,对后台处理过的数据进行循环遍历,
下面就是jq部分:
这样就实现了根据一级菜单来选中对应一级菜单下的二级菜单(菜鸟总结)
后台查询出来的数据本来是这样的:
这样的二维数组是不够的,需要我们处理一下:
$newarray = array(); foreach ($list as $data){ $rolename = $data['rolename']; if(array_key_exists($rolename, $newarray)) { $d = $newarray[$rolename]; $yearArray = $d['text']; } else { $d = array(); $d['rolename'] = $rolename; $yearArray = array(); } $YearMonthData = array( 'userroleid' => $data['userroleid'], 'vkorgtext' => $data['vkorgtext'], 'vtwegtext' => $data['vtwegtext'], 'vkburtext' => $data['vkburtext'], ); $yearArray[] = $YearMonthData; ece4 // var_dump($yearArray); $d['text'] = $yearArray; $newarray[$rolename] = $d; }
这样处理之后我们的数组就变成了这样结构:
里面的数据是根据你的需要进行更改。
HTML布局,对后台处理过的数据进行循环遍历,
<td> <div class="easyui-panel" style="padding:5px;width: 250px;"> <ul class="easyui-tree"> <li> <span>{$vkorglist[0]['vktext']}</span> <ul> <!--一级菜单--> <foreach name="vtweglist" item="i"> <li data-options="state:'closed'"> <span> <input style="height:12px;" class="vtweg" type="checkbox" name="vtweg[]" value="{$i.vtweg}" id="{$i.vtweg}"> <span>{$i.wegtext}</span> </span> <!--二级菜单--> <ul> <foreach name="i.vkbur" item="vo"> <li> <span> <input style="height:12px;" class="vkbur" type="checkbox" name="vkbur[]" value="{$vo.vkbur}" id="{$vo.vkbur}"> <span>{$vo.vkbe}</span> </span> </li> </foreach> </ul> </li> </foreach> </ul> </li> </ul> </div> </td>
下面就是jq部分:
//后台实例化对象传到前台的数组,将数组转换成json格式的字符串 var olddata = '<?php echo json_encode($old);?>'; //将json格式的字符串转换成json格式的对象 var olddatas = JSON.parse(olddata); var count = olddatas.length; //一级菜单 $(".vtweg").each(function(){ var vtweg = $(this); var vtwegid = vtweg.attr('id'); for(var i=0;i<count;i++){ if(olddatas[i].VTWEG == vtwegid){ vtweg.attr('checked','true'); //二级菜单 vtweg.parent().parent().next().children().find('.vkbur').each(function(){ var vkbur = $(this); var vkburid = $(this).attr('id'); if(olddatas[i].VKBUR == vkburid){ vkbur.attr('checked','true'); } }) } } })
这样就实现了根据一级菜单来选中对应一级菜单下的二级菜单(菜鸟总结)
相关文章推荐
- 根据数据的父子关系创建树形结构并实现遍历
- 根据数据的父子关系创建树形结构并实现遍历
- 根据数据的父子关系创建树形结构并实现遍历
- 根据数据的父子关系创建树形结构并实现遍历
- 【java基础 4】树形结构数据呈现的非递归算法(循环)实现
- java实现文件夹的遍历(树形结构)
- 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例
- asp.net2.0中,实现treeview中选择父级checkbox时,子级连动 整理转载
- thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
- JQ遍历checkbox,禁用未选中项
- java实现遍历文件目录,并在控制台以树形结构展示搜索出来的文件
- C# winform treeview checkbox 选中 循环 遍历
- Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的实现办法
- 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例
- jquery checkbox 全选 反选 子级全选默认选中父级
- 【Tree 2】树形结构数据呈现的非递归算法(循环)实现
- jq实现checkbox全选中以及获得选中的checkbox的值
- 数据结构 利用循环队列层次遍历一棵二叉树 递归实现
- python django 多级业务树形结构规划及页面渲染 概述: 在项目中,父级到子级结构并不少见,如果仅仅的两层树形结构,我们可以使用数据库的外键设计轻松做到,子级业务表设计一字段外键到父级
- Linux文件系统调用----实现对树形文件结构的广度优先遍历,即按层输出文件信息