Ok ho trovato una soluzione... ho letto un po e ho capito che potevo risalire agli elementi scalando un po il DOM...
Innanzitutto ho riscritto il codice così
codice:
<div id="galleryindex">
<h3>Mese 1</h3>
<div class="monthbox" id="mese01">
<dl class="indexbox">
<dt>Data della galleria 1</dt>
<dd>Descrizione</dd>
<dt>Data della galleria 2</dt>
<dd>Descrizione</dd>
</dl>
</div>
<h3>Mese 2</h3>
<div class="monthbox" id="mese02">
<dl class="indexbox">
<dt>Data della galleria 3</dt>
<dd>Descrizione</dd>
<dt>Data della galleria 4</dt>
<dd>Descrizione</dd>
</dl>
</div>
</div>
Ora sto provando a realizzare una funzione che trovi tutti gli elementi con tag "div" contenuti nel div con id "gallerybox", verifichi se a questi elementi sia assegnata la classe "monthbox" e se l'id di ognuno di questi div sia diverso da "meseXX" (dove XX è il numero del mese corrente) e assegna a loro l'attributo css display="none".
Ovvero nasconde tutti i div che contengono gli indici delle gallerie degli altri mesi mantenendo visibile solo quello relativo al mese corrente.
codice:
function HideBox() {
data = new Date();
m = "mese" + data.getMonth();
if(document) {
mb = document.getElementById('gallerybox').getElementsByTagName('div');
for(i=0;i<mb.lenght;i++) {
if((/monthbox/.test(mb[i].className)) && (mb[i].getAttribute("id") != m)) {
mb[i].style.display="none";
}
}
}
}
Ho inserito la funzione HideBox(); dentro un tag script poco prima del markup relativo agli elementi che voglio manipolare, eppure lo script...
... non funziona....
Poi ho anche provato a mettere HideBox(); nell'evento onload di body.. non funziona ugualmente....
Ho scritto questo scriptino in un file esterno chiamato funzioni.js e che ho regolarmente richiamato nell'head del documento...
Sapete dirmi dove sta l'errore ??
p.s. ho anche provato ad eliminare la condizione dell'if che verifica se l'id dell'elemento è relativo al mese corrente, così dovrebbe nasconderli tutti, ma non funziona ugualmente...
C'è forse un errore nelle condizioni dell'if ?