jQuery操作列表数据转成Json再输出为html dom树

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;
    }
});
时间: 2024-10-25 09:34:12

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

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

项目背景 项目中需要把表格重排显示 处理方法 思路主要是用历遍Json数组把json数据一个个append到4个表格里,还要给每个单元格绑定个单击弹出自定义对话框,表格分了单双行,第一行最后还要改rowspan呵呵,程序还没优化运行正常先给客户展示先:) 1,表格数据->json数组 var keyArr = new Array(); var jsonArr = new Array(); $list.find("thead th").each(function () { keyA

数据库取的数据打包成json然后传值到前端

后端用get或者post从数据库取的数据如何打包成json: 需要下载json的jar包,这里有:http://download.csdn.net/detail/zhangy0329/607838 Connection ct = null; Statement sm = null; ResultSet rs = null; try{ Class.forName("com.mysql.jdbc.Driver"); //连接mysql数据库 ct = DriverManager.getCo

第三方插件将数据转成json

1.需要使用第三方jar commons-beanutils-1.7.0.jar /commons-collections-3.1.jar/commons-lang-2.5jar /commons-logging-1.1.1.jar /exmorph-1.0.3.jar/json-lib-2.1-jdk15.jar 2.转换语法 (1)javaBean---->json JSONArray jsonArray = JSONArray.formatObject(city); String json

将Array格式的数据解析成JSON格式的数据

在编程的过程中,数据的传输格式如何,会影响开发的效率和后期代码的维护, 并且现在许多的js中支持了JSON格式的数据, 比如angular.nodejs.本篇文章主要讲解Array(数组)形式数据的解析.其它格式的数据会在后续的文章中进行书写. (1)定义一个解析Array的类JSONArray. public class JSONArray { @SuppressWarnings("unchecked") public static String toJSONString(List

【前端】将form数据转化为json再提交

(function($) { $.fn.serializeJson = function() { var serializeObj = {}; var array = this.serializeArray(); var str = this.serialize(); $(array).each( function() { if (serializeObj[this.name]) { if ($.isArray(serializeObj[this.name])) { serializeObj[t

使用jQuery POST提交数据返回的JSON是字符串不能解析为JSON对象

post请求原代码: $.post( "/User/Home/Code", { Phone: $( "#phone").val() }, function (data) { //data是object类型 //alert(data.isSend); if (data.isSend == "1") { alert( "短信验证码发送成功!" ); } else { alert( "短信验证码发送失败!" );

java 调用wsdl接口同时将返回数据解析成json

package com.haiersoft.ushequmobile.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringReader; import java.util.List; import java.util.Map; imp

pandas 如何将一列列表数据展开成多行数据

1 df = pd.DataFrame({'A':df.A.repeat(df.B.str.len()),'B':np.concatenate(df.B.values)})   原文地址:https://www.cnblogs.com/Tw1st-Fate/p/11318552.html

android实现json数据的解析和把数据转换成json格式的字符串

利用android sdk里面的 JSONObject和JSONArray把集合或者普通数据,转换成json格式的字符串 JSONObject和JSONArray解析json格式的字符串为集合或者一般数据 package com.hck.test; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.