解决方案 »

  1.   

    遍历第一次执行:divStr+="<div>"
    遍历最后一次执行:和divStr+="</div>";
      

  2.   

    问题解决了,留个记号 //二级菜单
    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);
    }