
这是ajax请求得到的数据
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401//EN">
<html>
<head>
<title>tree view</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/zTreeStylecss">
<script type="text/javascript" src="js/jquery-17js"></script>
<script type="text/javascript" src="js/jqueryztreecore-35js"></script>
<script type="text/javascript" src="js/jqueryztreeexcheck-35js"></script>
<script type="text/javascript">
/------------------------------------------------ajax请求数据-----------------------/
var str;
var strs = [];
var list = [];
var listc = [];
var listp = [];
$(function() {
$ajax({
url : "http://19216810110:8080/ajaxhtml",
type : "POST",
data : {
val : "1"
},
dataType : "jsonp",
success : function(data) {
var json = $parseJSON(data);
str = jsonmessagesplit(",");
for (i = 0; i < strlength; i++) {
consolelog(str[i]);
strspush(str[i]split("-"));//把分割好的数组添加到strs
if (strs[i]length == 2) {//数组长度为2时,只有一个'-'符号
listpush(str[i]);//添加只有一个"-" 的设备 (即站点)
}
if (strs[i]length == 3) {//两个'-'的数组
listcpush(str[i]);
}
if (strs[i]length == 4) {//三个'-'的数组
listppush(str[i]);
}
}
//get slist2 start /
//分割list 获取树的根节点
var slist = [];//截图'-'号前的字段
var slist2 = [];//存放树的根节点的数组
//截取'-'之前的所有字符,并且循环添加到slist
for (i = 0; i < listlength; i++) {
var xlist = list[i]substring(0, list[i]indexOf("-"));
slistpush(xlist);
}
//判断slist里面的数据是否有重复,把不重复的值循环添加到slist2
for (i = 0; i < slistlength; i++) {
if (slist[i] != slist[i + 1]) {
slist2push(slist[i]);
}
}//get slist2 over /
//get slist4 start /
//分割listc 获取子节点 -设备nodes
var slist3 = [];//保存设备节点
var slist4 = [];//保存去掉重复的设备 的数组 第二级子节点
for (i = 0; i < listclength; i++) {
var lastindex = listc[i]lastIndexOf("-");
var xlist2 = listc[i]substring(0, lastindex);
slist3push(xlist2);
}
//判断slist里面的数据是否有重复,把不重复的值循环添加到slist4
for (i = 0; i <= slist3length - 1; i++) {
if (($inArray(slist3[i], slist4)) == -1) {//jquery。inArray(value,array);
slist4push(slist3[i]);
}
}
//get slist4 over /
//get slist6 start/
//分割listp 获取设备测点nodes S0-E1-S1
var slist5 = [];
var slist6 = [];//这是第三级子节点
for (i = 0; i < listplength; i++) {
var lastindex = listp[i]lastIndexOf("-");//截取最后一个'-'前的字符,并循环添加到slist5
var xlist3 = listp[i]substring(0, lastindex);
slist5push(xlist3);
// consolelog(slist5[i]);
}
for (i = 0; i < slist5length; i++) {
if (($inArray(slist5[i], slist6)) == -1) {//去掉重复项 slist6的值为三级节点,从四级节点中提取出不重复的值作为树的三级节点
slist6push(slist5[i]);
}
}
//get slist6 over/
//把第三级子节点 slist6 添加到 二级子节点 二级节点有多少个节点就把slist6分成多少组
var rs = new Object();
//初始化
for ( var i = 0; i < slist4length; i++) {
rs[slist4[i]] = [];
}
//分组
for ( var i = 0; i < slist6length; i++) {
var key = slist6[i]substr(0, slist6[i]lastIndexOf('-'));
//consolelog(key);
rs[key]push(slist6[i]);//根据key 把listp对应的值添加到rs[key]
}
//结果输出
for ( var key in rs) {
//consolelog(key + "-----" + rs[key]);//key 为分组名[二级节点] rs[key]为每组数据[二级节点下对应的三级节点]
}
/-------------------------------------------------------tree start------------------------------------------/
var zTreeObj;
// zTree 的参数配置
var setting = {
view : {
dblClickExpand : false,
},
data : {
simpleData : {
enable : true
}
},
callback : {
onClick : onClick
}
};
var treeOBJ = $fnzTreegetZTreeObj("tree");
var nodes2 = [];//设备节点 S0的子节点 S0-E
var nodes3 = [];
//添加节点
for (key in rs) {
nodes3push({
id : key,//节点id
name : key,//节点名
children : [ {
name : rs[key]
//子节点 rs[key] 是一个数组, 要怎样才能把它遍历出来,并且把一个个数据添加到对应的父节点
} ]
});
}
/ for (i = 0; i < rs[key]length; i++) {
nvalpush({
name : rs[key][i]
});
consolelog(rs[key][i]);
}
consolelog(rs[key]length); /
/ for (i = 0; i < slist4length; i++) {
//添加父节点
nodes2push({
id : slist4[i],
name : slist4[i],
isParent : true
});
} /
/----根节点-----/
var zNodes = [];//根节点 ROOT S0
for (i = 0; i < slist2length; i++) {
zNodespush({
name : slist2[i],
isParent : true,
open : true,
children : nodes3
});
}
function onClick(e, treeId, treeNode) {
//获取树对象容器的id
var zTree = $fnzTreegetZTreeObj("tree");
zTreeexpandNode(treeNode);
}
$(function() {
//初始化树
zTreeObj = $fnzTreeinit($("#tree"), setting, zNodes);
});
/ ------------------------------------------------tree over----------------------------------------------- /
}
});
/------------------ajax over--------------------------------------------/
});
</script>
</head>
<body>
<div>
<!-- class name 必须为ztree -->
<ul id="tree" class="ztree"></ul>
</div>
</body>
</html>
树的效果像第一个图,但是第三级子节点应该是那一串数据分割后的数组
以上就是关于Ztree生成树,用ajax读取数据,但出现Cannot read property 'substring' of undefined全部的内容,包括:Ztree生成树,用ajax读取数据,但出现Cannot read property 'substring' of undefined、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)