Ah, adesso mi è chiaro. Direi che in giro ci sono di sicuro un sacco di soluzioni già pronte, ben testate e quindi comatibili, tuttavia te ne propongo una basilare e semplice.
Cominciamo dalla struttura di markup:
codice:
<ul id="navigazione">[*]<span onclick="mostra(0)">Frutta</span>
<ul>[*]Mela[*]Pera[*]Banana[/list]
[*]<span onclick="mostra(1)">Verdura</span>
<ul>[*]Pomodoro[*]Carota[*]Patata[/list]
[/list]
Passiamo al CSS:
codice:
.pulsante
{
color:blue;
text-decoration:underline;
cursor:pointer;
}
.invisibile
{
position:absolute; top:-100em;
width:1px; height:1px;
overflow:hidden;
}
Come prevedibile mi sono incartato sul DOM. Chiedo a esperti di sistemare. I miei problemi sono principalmente due:
- non riesco ad attribuire la classe 'pulsante' agli span di intestazione delle sotto-liste;
- non so come richiudere le sottoliste una volta aperte.

codice:
// Definisci i nodi
var nav = document.getElementById('navigazione');
var subnav = nav.getElementsByTagName('ul');
var pulsanti = nav.childNodes;
// Attribuisci stile ai pulsanti
for ( var i = 0; i < pulsanti.length; i++ )
{
var pulsante = pulsanti.item(i).firstChild.className = 'pulsante';
}
// Nascondi le sotto-liste
for ( var i = 0; i < subnav.length; i++ )
{
var pulsante = subnav.item(i).getElementsByTagName('li');
pulsante.item(i).className = 'invisibile';
}
// Crea funzioni
function mostra(posizione)
{
subnav.item(posizione).className = '';
}
function nascondi(posizione)
{
subnav.item(posizione).className = 'invisibile';
}