Bonjour,

Mon treeview construit, je lui demande lorsque la page se charge de le réduire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<div id="mnAction">
			<ul id="rac" class="niv">
			   <li><b>Gestion du site</b>
					<ul id="niveau" class="niv">
						<li><img src="img/minus.gif" class="clic" onClick="expand(this.parentNode)"/><a href="#"><b>Edition</b></a>
							<ul id="nive" class="niv2">
								<li><img src="img/join.gif" /><a href="?ac=ajAuteur">Auteur</a></li>
								<li><img src="img/join.gif" /><a href="?ac=ajCom">Presse</a></li>
								<li><img src="img/join.gif" /><a href="?ac=ajLivre">Livre</a></li>
								<li><img src="img/join.gif" /><a href="?ac=ajlieux">Lieux</a></li>
								<li><img src="img/join.gif" /><a href="?ac=avis">Avis</a></li>
						   </ul> 
						</li>
					</ul>					  					                      
					<ul id="niveau" class="niv"> 		
					  <li><img src="img/minus.gif" class="clic" onClick="expand(this.parentNode)"/><a href="#"><b>Globe</b></a>
						<ul id="nive" class="niv2">
							<li><img src="img/join.gif" /><a href="?ac=item">Items</a></li>
							<li><img src="img/join.gif" /><a href="?ac=ComG">Commande</a></li>
						</ul>
					  </li>
					</ul>
				</li>
			 </ul>
 
 
			<script type="text/javascript" language="JavaScript">collapseMultiple();</script>
		</div>
Voici le code js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
// Fonction qui cache tous les menus
function collapseMultiple() {
	// Recupere le menu de niveau 1
	//document.getElementById('e').innerHTML="essai";
	niv = document.getElementById('niveau');
 
	// recupere tous les menus dépliants
	tab_ul = niv.getElementsByTagName("ul");
	nb = tab_ul.length;
 
	// cache tous les menus
	for(var i=0; i<=nb; i++) 
	{
		expand(tab_ul[i].parentNode);
	}
}
function expand(li) 
{
	var node = li.firstChild;
	var img = li.firstChild;
	// parcours tous les fils pour trouver l'element UL
	while ( node.nodeName != "UL" )
		node = node.nextSibling; 
	// parcours tous les fils pour trouver l'element IMG
	while ( img.nodeName != "IMG" )
		img = img.nextSibling;
	// affiche le menu
	if ( node.style.display == 'none' ) {
		node.style.display = 'block';
		img.src = 'img/minus.gif';
		img.alt = '[-]';
 
	}
	// cache le menu
	else {
		node.style.display = 'none';
		if (img.name != "t")
		{
			img.src = 'img/plus.gif';
			img.alt = '[+]';
		}
		else
		{
			img.src = '';
			img.alt = '';
		}
	}
 
}
Seulement, quoique je fasse, il ne réduit que le premier menu "Edition", l'autre Globe reste étendu et bien évidemment les autres qui suivent.

Lorsque je compte les niv.getElementsByTag("ul"), il ne m'en trouve qu'un ???

Où se trouve l'erreur dans mon code ?

Christian.