Créer un menu deroulant via une fonction recursive.
Bonjour a tous;
mon problème c'est que je veux crée un déroulant en javascript je suis un peu débutant dans javascript. voilà j'ai une liste
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<html><head></head>
<body>
<ul id="menu">
<li>Element-1
<ul>
<li>Element-1-1</li>
<li>Element-1-2</li>
</ul>
</li>
<li>Element-2
<ul>
<li>Element-2-1</li>
<li>Element-1-2</li>
</ul>
</li>
<li>Element-3</li>
</ul>
</body>
</html> |
mais bien sur le menu peut avoir plus de deux niveau je veux ajouter des idName et des classNam à l'aide dune fonction javascripte qui teste chaque noeud et lui donner la className ou le idName correspondant à mon menu comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<html><head></head>
<body>
<ul id="menu">
<li id="liniv0">Element-1
<ul id="ulniv0">
<li id="liniv1">Element-1-1</li>
<li id="liniv1">Element-1-2</li>
</ul>
</li>
<li id="liniv0">Element-2
<ul id="ulniv0">
<li id="liniv1">Element-2-1</li>
<li id="liniv1"i>Element-1-2</li>
</ul>
</li>
<li id="liniv0">Element-3</li>
</ul>
</body>
</html> |
j'ai utiliser une fonction récursive comme suite mais je sais pas où est le problème sachez que je suis débutant et voilà ma fonction récursive:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
idmenu="menu";
function menuderoulant(idmenu,k){
nod=document.getElementById(idmenu);
nod=nod.childNodes;
for(i=0;i<nod.length;i++){
if(nod[i].nodeType==1){
nod[i].id="limenu"+k;
noed=nod[i].childNodes;
for(j=0;j<noed.length;j++){
if(noed[j].nodeType==1){
noed[j].id="ulmenu"+k;
d=k+1;
menuderoulant(noed[j].id,d);
}
}
}
}
} |