问题解决了,留个记号 //二级菜单 function concatDiv(vl,k) { var count=0; var divStr = "<div id='mm"+k+"' style='width:140px;'>"; $.each(model.NavigateData,function(index,value) { var vl2=value.Value; if(value.ParentValue == vl) { //alert(vl); //menulist.push(value.Value); var link = value.Link; divStr = divStr + "<div id='"+link+"' name='"+value.Value+"' onclick='setUrl(this);'>"+"<span>"+value.Text+"</span>";
//添加三级菜单,原理就是先找出对应的二级菜单,然后再进行遍历 //divStr+="<div>"; //tempMenu(value.Value,k); //把子菜单PUSH到数组里去 //SAME数组用来存放有三级菜单父级ID的数组。 var s=[]; var same=[]; $.each(model.NavigateData,function(index,value){ var vl=value.Value; var vlparent=value.ParentValue; var link =value.Link;
遍历最后一次执行:和divStr+="</div>";
function concatDiv(vl,k)
{
var count=0;
var divStr = "<div id='mm"+k+"' style='width:140px;'>";
$.each(model.NavigateData,function(index,value)
{
var vl2=value.Value;
if(value.ParentValue == vl)
{
//alert(vl);
//menulist.push(value.Value);
var link = value.Link;
divStr = divStr + "<div id='"+link+"' name='"+value.Value+"' onclick='setUrl(this);'>"+"<span>"+value.Text+"</span>";
//添加三级菜单,原理就是先找出对应的二级菜单,然后再进行遍历
//divStr+="<div>";
//tempMenu(value.Value,k);
//把子菜单PUSH到数组里去
//SAME数组用来存放有三级菜单父级ID的数组。
var s=[];
var same=[];
$.each(model.NavigateData,function(index,value){
var vl=value.Value;
var vlparent=value.ParentValue;
var link =value.Link;
if(vlparent==vl2)
{
//alert("parent:"+vlparent+",vl2:"+vl2);
//alert(value.Value);
var div=$("div[name='"+vlparent+"'] .menu-text");
var divSub=$("div[name='"+vl+"']");
//divStr = divStr + "<div id='"+link+"' name='"+value.Value+"' onclick='setUrl(this);'>"+"<span>"+value.Text+"</div>";
s.push("<div id='"+link+"' name='"+value.Value+"' onclick='setUrl(this);'>"+"<span>"+value.Text+"</div>");
same.push(vlparent);
//divStr+="<div><div>1</div><div>2</div></div>";
//divStr+=divStrSub;
}
});
//去除相同的元素
function unique(array) {
var ret = [], record = {},it,tmp,obj = "__object__", bak = [],i,len;
var type ={
"number": function(n) { return "__number__" + n; },
"string": function(n) { return "__string__" + n; },
"boolean": function(n) { return "__boolean__" + n; },
"undefined": function(n) { return "__undefined__"; },
"object": function(n) {
return n === null ? "__null__" : obj in n ? n[obj] : ( n[obj] = obj + bak.push(n) );
}
};
for (i = 0, len = array.length; i < len; i++) {
it = array[i]; tmp = type[typeof it](it);
if (!(tmp in record)) { ret.push(it); record[tmp] = true; }
}
for (i = 0, len = bak.length; i < len; delete bak[i++][obj]) { }
return ret;
};
var uniq=unique(same);
//判断是否为3级菜单的元素
$.each(model.NavigateData,function(index,value){
var vl=value.Value;
var vlparent=value.ParentValue;
var link =value.Link;
if(vlparent==uniq)
{
divStr+="<div>";
divStr+=s.join(''); //把数组里的数据全部加进来
divStr+="</div>";
}
});
//alert(s);
//divStr+="</div>";
//
// if(value.Value=="b15fa5ba-5a73-4792-a65a-5bcf2e8a20ec")
// {
// divStr+="<div><div>1</div><div>2</div></div>";
// }
divStr+="</div>"; //tempMenu(value.Value);
}
});
divStr = divStr+"</div>";
$('#main').append(divStr);
}