`

dhtmlXTreeObject树状结构与自己写的树状结构

    博客分类:
  • js
阅读更多
var cate = {"cate":[{"id":"1","name":"景点景区","parent":"1"},{"id":"2","name":"星级饭店","parent":"2"},{"id":"3","name":"旅行社","parent":"3"},{"id":"4","name":"重点区域","parent":"4"},{"id":"5","name":"某景点","parent":"1"},{"id":"6","name":"慕田峪长城","parent":"1"},{"id":"7","name":"1星级饭店","parent":"2"},{"id":"8","name":"2星级饭店","parent":"2"},{"id":"9","name":"1星级饭店子类","parent":"7"},{"id":"10","name":"重点区域子类","parent":"4"},{"id":"11","name":"1星级饭店子类2","parent":"7","isEnd":true},{"id":"12","name":"1星级饭店子类的子类","parent":"9","isEnd":true}]};
var cates = cate.cate;

innerHtml = "<ul>";
//汇总根
function setContent(content) {
for(var i = 0; i < content.length; i++) {
if(content[i].parent == content[i].id) {
if(content[i].isEnd == true) {
//获取数据
innerHtml += "<li  onclick='getData();'>" + content[i].name + "</li>";
} else {
//伸展合拢
innerHtml += "<li  onclick='sss(this);'>" + content[i].name + "</li>";
}
setContentSub(content, i);
}
}
innerHtml += "</ul>";
document.write(innerHtml);
}
//汇总子集
function setContentSub(content,index) {
var tag = 0;
for(var j = 0; j < content.length; j++) {
if(content[j].parent != content[j].id && content[j].parent == content[index].id) {
tag++;
if(tag == 1) {
innerHtml += "<ul>";
if(content[j].isEnd == true) {
//获取数据
innerHtml += "<li onclick='getData();'>" + content[j].name + "</li>";
} else {
//伸展合拢
innerHtml += "<li onclick='sss();'>" + content[j].name + "</li>";
}
setContentSub(content, j);
} else {
if(content[j].isEnd == true) {
alert(content[j].name);
//获取数据
innerHtml += "<li onclick='getData();'>" + content[j].name + "</li>";
} else {
//伸展合拢
innerHtml += "<li onclick='sss();'>" + content[j].name + "</li>";
}
setContentSub(content, j);
}
}
}
if(tag > 0) {
innerHtml += "</ul>";
tag = 0;
}
}
setContent(cates);

function sss(obj) {
$(obj).siblings().toggle('slow');
}
function getData() {
alert('data');
}

//这种方式写的树状结构没有固定皮肤,需要自己加工
//而jquery插件dhtmlXTreeObjec有一套自己的皮肤,使用起来很方便,但是再用使用这个插件的时候要先准备好符合格式的数据
//var jsonClass = {id:0,item:[{id:'1',text:'景点景区',item:[{id:'5',text:'某景点'},{id:'6',text:'慕田峪长城'}]},{id:'2',text:'星级饭店',item:[{id:'7',text:'1星级饭店',item:[{id:'9',text:'1星级饭店子类',item:[{id:'12',text:'1星级饭店子类的子类'}]},{id:'11',text:'1星级饭店子类2'}]},{id:'8',text:'2星级饭店'}]},{id:'3',text:'旅行社'},{id:'4',text:'重点区域',item:[{id:'10',text:'重点区域子类'}]}]};

//转换方法

var xmlTree = "{id:0,item:[";
//汇总根类
function setContent(content) {
var tagA = 0;
for(var i = 0; i < content.length; i++) {
if(content[i].parent == content[i].id) {
tagA++;
if(tagA == 1) {
xmlTree += "{id:'" + content[i].id + "',text:'" + content[i].name + "'";
} else {
xmlTree += ",{id:'" + content[i].id + "',text:'" + content[i].name + "'";
}
setContentSub(content,i);
}

}
xmlTree += "]}";
//这个可以用return代替返回获取内容
document.write(xmlTree);
}
//汇总子集
function setContentSub(content,index) {
var tagB = 0;
for(var j = 0; j < content.length; j ++) {
if(content[j].parent != content[j].id && content[j].parent == content[index].id) {
tagB++;
if(tagB == 1) {
xmlTree += ",item:[";
xmlTree += "{id:'" + content[j].id + "',text:'" + content[j].name + "'";
} else {
xmlTree += ",{id:'" + content[j].id + "',text:'" + content[j].name + "'";
}
setContentSub(content,j);
}
}
if(tagB > 0) {
xmlTree += "]}";
} else {
xmlTree += "}";
}
}

setContent(cates);
分享到:
评论

相关推荐

    基于dhtmlxtree构建动态维护树

    尤其是在需要频繁更新和维护树状结构的应用中,使用DHTMLXTree能够极大提升用户体验并简化开发工作。 #### 三、构建动态维护树的关键步骤 ##### 1. 数据表设计 为了支撑动态维护树的功能,首先需要有一个合适的...

    dhtmlXTree1.6

    **dhtmlXTree1.6** 是一个基于JavaScript的组件,用于在Web应用程序中创建交互式的树状结构。这个组件允许开发者以动态和灵活的方式展示层次化的数据,常见于网站的导航菜单、文件系统或者组织架构等场景。...

    dhtmlxTree树形控件JavaScript

    dhtmlxTree是一款基于JavaScript的树形控件,它提供了丰富的功能和自定义选项,用于在Web应用程序中创建交互式的树状数据结构。这个控件允许开发者以灵活的方式展示层次化的信息,例如网站导航、文件系统目录或者...

    dhtml1.6 pro

    DHTML Tree 是一种用户界面元素,它以树状结构展示数据,常用于网站的导航菜单、文件管理系统或者层级关系展示。DHTML 1.6 Pro 提供了更加强大和灵活的功能,包括但不限于: - **多级展开与折叠**:用户可以方便地...

    树形菜单的例子

    树形菜单是一种常见的用户界面元素,它以树状结构展示数据,通常用于文件系统、网站导航、层级关系的展示等场景。在Web开发中,树形菜单能够帮助用户有效地浏览和操作多层级的信息。本教程将围绕“树形菜单”的实现...

    dhtmlxTree

    1. **可视化设计** - dhtmlxTree提供了一种直观的方式来呈现层次化的数据,每个节点都可以包含子节点,形成一个清晰的树状结构。 2. **丰富的API** - 提供了详尽的JavaScript API,允许开发者进行各种操作,如添加、...

    DHtmlXTree应用指南.pdf

    它可以帮助开发者快速创建、管理和操作复杂的树状数据结构,广泛应用于各种Web应用程序中,如文件管理器、组织结构图、产品分类等。 #### 二、概述 ##### 2.1 需求背景 在开发过程中,经常需要通过树形结构来展示...

    dhtmlxtree例子

    使用`new dhtmlXTreeObject("bodydata","100%","100%",0)`创建一个树对象,其中"bodydata"是树的容器ID,"100%"分别代表宽度和高度,0表示不显示图标。 3. **设置图片路径**: `setImagePath("&lt;%=imgPath%&gt;common...

    dhtmlXTree(professionalv1.3)

    - **树状图表示**: 表现复杂的数据关系,如组织架构、流程图等。 ### 3. 主要功能 - **节点操作**: 增加、删除、移动、展开/折叠节点,支持拖放操作。 - **多选与复选**: 支持单选或多选模式,节点可以带有复选...

    dhtmlxtree插件

    这个插件由DHX Suite提供,它允许开发者轻松创建交互式的、可自定义的树状视图,支持丰富的API和多种数据源。 ### 1. 核心特性 - **动态加载**:dhtmlxtree 支持按需加载子节点,降低初次加载时的数据量,提高页面...

    DHTMLX中文使用手册2.0版本.doc

    tree = new dhtmlXTreeObject('treeBox', "100%", "100%", 0); tree.enableDragAndDrop(true); ``` 你可以通过`setImagePath(url)`方法设置树的图片路径,`enableCheckBoxes(mode)`打开或关闭多选框功能,而`...

Global site tag (gtag.js) - Google Analytics