jquery 写树形控件

宋家德 3周前 5浏览 0评论

树形控件是Web应用程序开发中常用组件之一,常常用于显示层次结构数据。使用jQuery写树形控件,可以更加方便快捷地完成页面的设计和开发。下面是使用jQuery写树形控件的示例代码。

    // 定义树形控件节点对象
    var TreeNode = function (id, name, parent_id) {
        this.id = id;
        this.name = name;
        this.parent_id = parent_id;
        this.children = [];
    };
    // 加载树形控件数据
    function loadTreeData() {
        // 假设TreeData是从后台加载的JSON数据,格式如下:
        var TreeData = [
            { id: 1, name: "节点1", parent_id: 0 },
            { id: 2, name: "节点2", parent_id: 1 },
            { id: 3, name: "节点3", parent_id: 1 },
            { id: 4, name: "节点4", parent_id: 3 },
            { id: 5, name: "节点5", parent_id: 4 },
            { id: 6, name: "节点6", parent_id: 0 },
            { id: 7, name: "节点7", parent_id: 6 },
            { id: 8, name: "节点8", parent_id: 7 }
        ];
        // 转换TreeData格式为树形控件节点对象数组
        var treeNodes = [];
        $.each(TreeData, function (i, data) {
            treeNodes.push(new TreeNode(data.id, data.name, data.parent_id));
        });
        // 构建树形控件节点树
        var rootNode = new TreeNode(0, "根节点", null);
        $.each(treeNodes, function (i, node) {
            if (node.parent_id == null) {
                rootNode.children.push(node);
            } else {
                $.each(treeNodes, function (j, parent_node) {
                    if (node.parent_id == parent_node.id) {
                        parent_node.children.push(node);
                        return false;
                    }
                });
            }
        });
        return rootNode.children;
    }
    // 生成树形控件节点HTML代码
    function getTreeNodeHtml(node) {
        var html = "
  • " + node.name; if (node.children.length > 0) { html += "
      "; $.each(node.children, function (i, child_node) { html += getTreeNodeHtml(child_node); }); html += "
    "; } html += "
  • "; return html; } // 初始化树形控件 function initTree() { var treeData = loadTreeData(); var $tree = $("#tree"); $.each(treeData, function (i, node) { var html = getTreeNodeHtml(node); $tree.append(html); }); } // 调用初始化树形控件函数 $(function () { initTree(); });

    以上代码中,定义了TreeNode对象来存储树形控件的节点信息,loadTreeData函数用于加载树形控件的数据,将从后台加载的JSON数据转换成TreeNode数组的形式。getTreeNodeHtml函数根据TreeNode节点对象生成对应的HTML代码。初始化树形控件的方法为initTree,通过调用loadTreeData函数和getTreeNodeHtml函数生成树形控件HTML代码,最后将代码追加到页面。在使用jQuery进行树形控件开发时,需要注意代码的清晰和组织结构的合理性,以便于后续开发和维护。