Newsgroup: it.comp.lang.javascript
Titolo: Problemi con document.getElementById()

ciao a tutti, sono nuovo del NG, e vorrei porre una domanda:
non sono molto esperto neppure di javascript, e magari faccio una
domanda banale,ma cosa accade quando utilizzo
getElementById("elemento") quando elemento è una array di variabile?
con document.all.elemento, mi ritorna una array di elementi,
indicizzati a cui posso accedere mediante il document.all.elemento[i];
con getElementById("elemento") mi fornisce solo il primo elemento mi
sembra...
io sto cercando di fare 1 menù orizzontale con tendine a scomparsa , e
il mio file js è il seguente:
var quanti = 4; // Imposta il numero di menu e di sottomenu
var i;
// Il parametro "conta" serve per indicizzare i vari menu principali
function Apri(conta)
{
   if(document.all) //Explorer
   { 
		var elemento = event.toElement;
      var mostra = document.all.sottomenu[conta];
 
 
          mostra.style.visibility = "visible";
          mostra.style.top = 15; 
 
             for (i=0; i<quanti; i++)
             {
                aperto = document.all.sottomenu[i];
                menu = document.all.principale[i];
 
                   if (i != conta)
                   {
                      aperto.style.visibility = "hidden";
                   }
             }
   }else if (document.layers)// Netscape Old
{	alert("netscape");
   mostra = document.layers[conta+1];
   mostra.visibility = "show"; 
   mostra.top= 15;
      for (i=1; i<=quanti; i++)
      {
          aperto = document.layers[i];
             if (i != (conta + 1))
             { 
                 aperto.visibility = "hide";
             }
      }
}else //Altri browser
{
 
 
      var mostra = document.getElementById("sottomenu");
 
 
 
 
          mostra.style.visibility = "visible";
          mostra.style.top = 15; 
 
             for (i=0; i<quanti; i++)
             {
                aperto = document.getElementById("sottomenu[i]");
                menu = document.getElementById("principale[i]");
                 aperto = document.getElementById("sottomenu");
                  menu = document.getElementById("principale");
                   if (i != conta)
                   {
                      aperto.style.visibility = "hidden";
                   }
             }
}
}
function Chiudi()
{
   for (i=0; i<quanti; i++)
   {
      if (document.all)
      {
         document.all.sottomenu[i].style.visibility = "hidden";
         menu = document.all.principale[i];
       }
   }
}
sto maledetto script funziona con explorer e con opera, ma non con
firefox
ah, il file html è il seguente:
<TABLE class=visible cellSpacing=0 cellPadding=0 width=765 border=0>
<TBODY>
<link rel="stylesheet" type="text/css" href="/di/style/menu.css">
<script language="javascript" type="text/javascript"
src="/gestione/INC/menu.js"></script>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema"
content="
http://schemas.microsoft.com/intellisense/ie5
">
<div style="background-color: #EEEEEE; border-bottom: Solid 1px
#000000;">
   <a href="javascript:void(0)" onMouseOver="Apri(0)"
id="principale">MENU #1</a>
   <a href="javascript:void(0)" onMouseOver="Apri(1)"
id="principale">MENU #2</a>
   <a href="javascript:void(0)" onMouseOver="Apri(2)"
id="principale">MENU #3</a>
   <a href="javascript:void(0)" onMouseOver="Apri(3)"
id="principale">MENU #4</a>
 
</div>
<div style="position: Absolute; width: 100%; height: 20%;"
onMouseOver="Chiudi()">&nbsp;</div>
<!-- MENU #1 -->
<div id="sottomenu" style="left: 180px;">
   <a href="pagina1.html">Pagina # 1</a><br>
   <a href="pagina2.html">Pagina # 2</a><br>
   <a href="pagina3.html">Pagina # 3</a><br>
</div>
<!-- MENU #2 -->
<div id="sottomenu" style="left: 248px;top: 100px;">
   <a href="pagina4.html">Pagina # 4</a><br>
   <a href="pagina5.html">Pagina # 5</a><br>
   <a href="pagina6.html">Pagina # 6</a><br>
</div>
<!-- MENU #3 -->
<div id="sottomenu" style="left:316px;">
   <a href="pagina7.html">Pagina # 7</a><br>
   <a href="pagina8.html">Pagina # 8</a><br>
   <a href="pagina9.html">Pagina # 9</a><br>
</div>
<!-- MENU #4 -->
<div id="sottomenu" style="left: 384px;">
   <a href="pagina10.html">Pagina # 10</a><br>
   <a href="pagina11.html">Pagina # 11</a><br>
   <a href="pagina12.html">Pagina # 12</a><br>
</div>
</TBODY>
</TABLE>
ho già cercato sulle FAQ e con google groups, ma non son riuscito a
trovare nulla che mi chiarisse cosa fare....
vi ringrazio anticipatamente per l'aiuto
ciao
keffi

id="principale">MENU #4</a>
Non puoi avere piu' elementi con lo stesso id, l'id e' univoco per un
solo elemento.
Al massimo puoi usare "name" al posto dell'id e getElementsByName 
'bye

...

grazie mille, inserendo nell'html anche i name, e utilizzando il
metodo che m'hai suggerito, son riuscito a far funzionare lo
script...magari non elegantissimo, ma funziona!
grazie ancora
keffi

 script...magari non elegantissimo, ma funziona!
non "anche", devi togliere assolutamente gli id multipli uguali.
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.