jQuery 把列表数据转成Json再输出为如下 dom树

    <div id="menu" class="lv1">
<ul class="menu">
<li><a href="#" class="parent"><span>aaaaaaaaaaa</span></a>
<div class="lv2">
<ul>
<li><a href="#" class="parent"><span>bbbbbbbbbbbbbbbb</span></a>
<div class="lv3">
<ul>
<li><a href="#" class="parent"><span>cccccccc</span></a>
<div class="lv4">
<ul>
<li><a href="#"><span>ddddddddd</span></a></li>
<li><a href="#"><span>dddddddd</span></a></li>
<li><a href="#"><span>dddddddd</span></a></li>
<li><a href="#"><span>dddddddd</span></a></li>
<li><a href="#"><span>dddddddd</span></a></li>
<li><a href="#"><span>dddddddd</span></a></li>
</ul>
</div>
</li>
<li><a href="#"><span>ccccccccccccc</span></a></li>
<li><a href="#"><span>cccccccc</span></a></li>
<li><a href="#"><span>cccccccccc</span></a></li>
<li><a href="#"><span>cccccccccc</span></a></li>
<li><a href="#"><span>ccccccccc</span></a></li>
</ul>
</div>
</li>
<li><a href="#" class="parent"><span>bbbbbbbbbbbbbbbbb</span></a>
<div class="lv3">
<ul>
<li><a href="#"><span>cccccccccccc</span></a></li>
<li><a href="#"><span>cccccccccccc</span></a></li>
</ul>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>

列表字段分别为Title Level Parent Content, JQ代码如下

    /**
* @create: nelson
* @initTree 初始化生成菜单
* @调用方式
$("#menu").initTree(qListview);
*/ $.fn.extend({
initTree: function (qListview) {
var This = $(this);
var That = $(qListview);
var keyArr = new Array();
var jsonArr = new Array();
That.find("thead th").each(function () {
keyArr.push($(this).text());
});
That.find("tbody tr").each(function (index) {
var jsonObj = {};
$(this).find("td").each(function (n) {
jsonObj[keyArr[n]] = $(this).html();
});
jsonArr.push(jsonObj);
});
This.attr('class', 'lv1').append('<ul class="menu"></ul>');
$.each(jsonArr, function (entryIndex, entry) {
switch (entry['Level']) {
case '1':
This.find("ul").append('<li><a href="#"><span>' + entry['Title'] + '</span></a></li>');
break;
case '2':
This.find(">ul>li>a").each(function () {
if (entry['Parent'] == $(this).text()) {
$(this).attr('class', 'parent');
if ($(this).parent().find('.lv2').html() == undefined) {
$(this).parent().append('<div class="lv2"><ul>' + '<li><a href="#"><span>' + entry['Title'] + '</span></a></li>' + '</ul></div>');
}
else {
$(this).parent().find('.lv2>ul').append('<li><a href="#"><span>' + entry['Title'] + '</span></a></li>');
}
return false;
}
});
break;
case '3':
This.find(".lv2>ul>li>a").each(function () {
if (entry['Parent'] == $(this).text()) {
$(this).attr('class', 'parent');
if ($(this).parent().find('.lv3').html() == undefined) {
$(this).parent().append('<div class="lv3"><ul>' + '<li><a href="#"><span>' + entry['Title'] + '</span></a></li>' + '</ul></div>');
}
else {
$(this).parent().find('.lv3>ul').append('<li><a href="#"><span>' + entry['Title'] + '</span></a></li>');
}
return false;
}
});
break;
case '4':
This.find(".lv3>ul>li>a").each(function () {
if (entry['Parent'] == $(this).text()) {
$(this).attr('class', 'parent');
if ($(this).parent().find('.lv4').html() == undefined) {
$(this).parent().append('<div class="lv4"><ul>' + '<li><a href="#"><span>' + entry['Title'] + '</span></a></li>' + '</ul></div>');
}
else {
$(this).parent().find('.lv4>ul').append('<li><a href="#"><span>' + entry['Title'] + '</span></a></li>');
}
return false;
}
});
break;
default:
break;
} });
return jsonArr;
}
});

jQuery操作列表数据转成Json再输出为html dom树的更多相关文章

  1. jquery里把数组转换成json的方法

    首先来看,jquery里自带的,和json相关的函数: 1.$.parseJSON  :  用来解析JSON字符串,返回一个对象. 什么叫“JSON字符串”? 比如: var a={name:&quo ...

  2. 【Flex】读取本地XML,然后XML数据转成JSON数据

    干了一年H5,最近被要求写编辑器,Electron等级还不够,写不了,只有重新拿起as3,用flex,最近写到数据表编辑模块,有这部分功能,基本完成 . package utils { /** * 模 ...

  3. Redis 操作列表数据

    Redis 操作列表数据: > lpush list1 "aaa" // lpush 用于追加列表元素,默认追加到列表的最左侧(left) (integer) > lp ...

  4. Java将其他数据类型转换成JSON字符串格式

    Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ...

  5. 利用python将excel数据解析成json格式

    利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...

  6. jqueery easyui tree把已选中的节点数据拼成json或者数组(非常重要)

    jqueery easyui tree把已选中的节点数据拼成json或者数组 pqxhk10级分类:其他被浏览14次2018.01.19  https://wenda.so.com/q/1535702 ...

  7. jquery: json树组数据输出到表格Dom树的处理方法

    项目背景 项目中需要把表格重排显示 处理方法 思路主要是用历遍Json数组把json数据一个个append到5个表格里,还要给每个单元格绑定个单击弹出自定义对话框,表格分了单双行,第一行最后还要改ro ...

  8. flask框架下读取mysql数据 转换成json格式API

    研究了一天 因为需要从数据库拿数据然后转换成json的格式 expose出去为 API 发现一条数据是容易,两条以上我居然搞了这么久 好歹出来了 先贴一下 后面更新 mysql的操作 比较容易了htt ...

  9. jQuery操作table数据上移、下移和置顶

    jQuery 操作table中的tr换行的步骤如下: 1.获取当前tr var $tr = $(this).parents("tr"); 2.移动tr //上移 $tr.prev( ...

随机推荐

  1. Hibernate双向一对一对象关系模型映射

    一个员工一辆车:one-to-one 实现一:让汽车表中的外键唯一 create table emp ( eid int primary key auto_increment, ename varch ...

  2. SQL基本CRUD

    --已知Oracle的Scott用户中提供了三个测试数据库表 --名称分别为dept,emp,salgrade.使用SQL语言完成一下操作 --1,查询20号部门的所有员工信息: SELECT * F ...

  3. asp.net 曲线图

    public void draw(DataTable dt) { //取得记录数量 int count = dt.Rows.Count; //记算图表宽度 int wd = 80 + 20 * (co ...

  4. 一分钟可知css3版大白源码

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  5. 关于each

    1种 通过each遍历li 可以获得所有li的内容 <!-- 1种 --> <ul class="one"> <li>11a</li> ...

  6. eclipse 中添加工程 Some projects cannot be imported because they already exist in the workspace

    第一次从外部文件导入HelloWorld工程到workspace目录中,成功. 删除后,再次从外部导入workspace目录提示 Some projects cannot be imported be ...

  7. NYOJ之水仙花数

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsAAAAInCAIAAAAZDHiCAAAgAElEQVR4nO3dPVLjzNoG4G8T5CyEFC

  8. 数据结构之Dijkstra算法

    基本思想 通过Dijkstra计算图G中的最短路径时,需要指定起点s(即从顶点s开始计算). 此外,引进两个集合S和U.S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求 ...

  9. CLR via C#(13)-浅谈事件

    提起事件,我们都不陌生,事件使类之间有了交互的能力.它是建立在委托基础上的.有了前面对委托的了解,相信读起事件来也不会太难了.关于事件,现成的好文章数不胜数,本不打算写了.不过问道有先后,各抒己见,也 ...

  10. (1)Underscore.js入门

    1. Underscore对象封装 Underscore并没有在原生的JavaScript对象原型中进行扩展,而是像jQuery一样,将数据封装在一个自定义对象中(下文中称"Undersco ...