Autor Zpráva
peta
Profil *
Jak se dela v domu novy radek pro generovany kod?


Mam takovyto pekny skriptik...
var treemenu=[
[0,'tree' ,'tree',0],
[1,'tree1' ,'tree',0],
[1,'tree1' ,'tree',0],
[2,'tree12' ,'tree',0],
[2,'tree12' ,'tree',0],
[1,'tree1' ,'tree',0],
[1,'tree1' ,'tree',0],
[2,'tree12' ,'tree',0],
[3,'tree123' ,'tree',0],
[3,'tree123' ,'tree',0],
[4,'tree1234' ,'tree',0],
[5,'tree12345' ,'tree',0],
[2,'tree12' ,'tree',0],
[3,'tree123' ,'tree',0],
[1,'tree1' ,'tree',0],
[2,'tree12' ,'tree',0],
[3,'tree123' ,'tree',0],
[4,'tree1234' ,'tree',0],
[1,'tree1' ,'tree',0]
];


function genList3()
{

var a,b,d,i,j,tree;

tree=document.getElementById("treemenu");
d=tree;

for(i=1;i<treemenu.length;i++)
{
a=treemenu[i-1][0];
b=treemenu[i][0];
if (b>a) //create UL
{
g=Boolean(d.lastChild)?d.lastChild:d;
d=document.createElement("ul");
}
if (b<a)
{
for(j=0;j<2*(a-b);j++)
{
d=d.parentNode;
}
}
// create LI
e=document.createElement("li");
f=document.createTextNode(treemenu[i][1]);
e.appendChild(f);
d.appendChild(e);

if (b>a) //create UL
{
g.appendChild(d);
}

}
tree.appendChild(d);
}


</script>
</head>

<body onload="genList3();">

<div id="treemenu" class="tree"></div>


A ma to jedinou chybu. Vygeneruje to sice treelist, ale kod vypada takto: (mam tam jeste pridane d.lastchild.classname="last")

<div id="treemenu" class="tree"><ul><li>tree1</li><li>tree1<ul><li>tree12</li><li class="last">tree12</li></ul></li><li>tree1</li><li>tree1<ul><li>tree1 2<ul><li>tree123</li><li class="last">tree123<ul><li class="last">tree1234<ul><li class="last">tree12345</li></ul></li></ul></li></ul></li><li class="last">tree12<ul><li class="last">tree123</li></ul></li></ul></li><li>tree1<ul><li class="last">tree12<ul><li class="last">tree123<ul><li class="last">tree1234</li></ul></li></ul></li></ul></li><li class="last">tree1</li></ul></div>

A ja bych chtel, aby to bylo pekne pod sebou.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0