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. 由浅入深剖析.htaccess

    转自:http://blog.csdn.net/21aspnet/article/details/6908025 [-] htaccess文件使用前提 htaccess基本语法介绍 现学现用学习正则表 ...

  2. 解决Eclipse里的Maven工程pom.xml文件报:web.xml is missing and <failOnMissingWebXml> is set to true错误

    打开eclipse准备进行开发时,发现项目上有个红星号,查看错误后发现报了一个:"web.xml is missing and <failOnMissingWebXml> is ...

  3. iOS添加另一个控制器的时候要注意啊

    ios的父控制器控制器和子控制器之间的注意点: " >> #warning 需要把新创建出来的控制器添加成子控制器 . 不然子控制器里面的子控件无法响应点击事件 " 一 ...

  4. 电脑不能浏览网页but能登录qq,解决方案总结

    电脑能登录qq,但是不能浏览网页,解决方法总结 [注]:仅供参考,属个人经验 今天早晨起来,电脑突然只能登录qq,不能上网了,从来没有遇到这种问题的我开始各种百度方法,各种尝试,最终成功解决了问题 首 ...

  5. Lambda表达式与标准运算符查询

    class Program { static void Main(string[] args) { //Lambda表达式输出List集合每一项 List<string> list = n ...

  6. postgresql导入及导出

    导入命令 psql -d GAME -U postgres -f /root/plubic.sql 出现如下错误: psql: FATAL:  Peer authentication failed f ...

  7. 使用C与C++混合编程封装UDP协议

    引入头文件,导入lib文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...

  8. 三、jQuery--Ajax基础--Ajax全接触--扩展知识(跨域)

  9. DOM - 5.事件冒泡 + 6.事件中的this

    5.事件冒泡 如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发.触发的顺序是"由内而外" .验证:在页面上添加一个table. ...

  10. Python 自然语言处理(1) 计数词汇

    Python有一个自然语言处理的工具包,叫做NLTK(Natural Language ToolKit),可以帮助你实现自然语言挖掘,语言建模等等工作.但是没有NLTK,也一样可以实现简单的词类统计. ...