PDA

View Full Version : JAVASCRIPT: GetElementsByTagName("") e ID degli elementi...


Remoz
22-09-2007, 16:03
Ciao a tutti... Sto facendo uno script, e avrei bisogno di avere sottomano in un array gli id degli elementi che trovo con getElementsByTagName...
Così che posso modificare più precisamente quello che voglio nella pagina, ad esempio, se ho 3 menu che si chiamano menu1, menu2 e menu3, e 3 sottomenù che si chiamano submenu1, submenu2 e submenu3, e voglio applicare una proprietà a tutti e tre i submenu, invece di selezionarli per ogni singolo ID, vorrei (avendo i loro ID in un array..) dire di cambiare la proprietà a tutti i TAG che hanno l'ID che inizia con "submenu", così li fa tutti e 3...

Questo perchè il numero dei menù può variare, e non vorrei fare uno script che si scassa se si aggiunge o toglie un menù...

Questo è quello che ho scritto, ma al momento dell'esecuzione sembra venire ignorato, e la console degli errori di firefox non rileva nessun errore.... :

<script type="text/javascript">
function unColor(what){

var tds = document.getElementsByTagName("td"); //prende tutti i td
var nome = new Array(); //crea l'array dei nomi
for (i=0;i<tds.lenght;i++) { //guarda quanti sono
nome[i] = tds.item(i).getAttribute("id"); //prende l'attributo "id" di ognuno
document.write(nome[i]+"<br>"); //e mi scrive tutti gli "id" in colonna
}

}
</script>


Dove sbaglio? Perchè viene totalmente ignorata la funzione? Ho provato a metterci un document.write all'inizio, con un messaggio, e viene scritto a schermo, quindi la funzione viene correttamente richiamata! :eek: booooh?

anonimizzato
22-09-2007, 16:25
Dov'è che richiami la funzione?

Remoz
22-09-2007, 16:31
Dov'è che richiami la funzione?

Ciao, grazie per la risposta, ecco dove richiamo la funzione (è una sezione di php..):


echo "<tr><td id=\"padre".$row_1['numero']."\" class=\"menuleft\" onclick=\"parent.mainFrame.location='".$row_1['link']."', unColor('level1'), this.style.background='#CCAA00';\">".$row_1['etichetta']."</td></tr>";


Spiego meglio:
i dati per comporre il menù li va a prendere direttamente da un database mysql (appunto per questo vorrei che il codice rimanesse flessibile, se aggiungo nuove voci nel db deve funzionare ancora senza problemi..), quando clicco quella voce (il td con id="padre1" ad esempio..) carica la pagina nel frame di destra, il td padre1 diventa giallo (#CCAA00) e però deve scolorire altri td eventualmente cliccati prima.. Per questo volevo tramite la funzione unColor selezionare tutti i td che iniziano per padre* (l'ho chiamato level1, level2 sono i menù figli, e level3 i nipoti... ma per ora lo script java non si preoccupa di controllare quale livello scolorire, è solo per prova..) e dargli il colore originale senza click..

Grazie ancora, ciauz! ;)

0rph3n
22-09-2007, 17:00
length, ogni tanto capita pure a me :D

Remoz
22-09-2007, 17:05
length, ogni tanto capita pure a me :D

NNNNNNNNOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!
Che pirla che sooooooooonooooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!!!!!
Ma nun ce se creeeeeeedeeeeeeeeeeeeee.................. :eekk:

Grazie 1000!!! Ora vado a cambiare e controllo se va!! MITTTTTICCCCOOOO!!!

Penitenza:
SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO SONO SCEMO

:asd:

Remoz
22-09-2007, 17:16
Ora funge, mi scrive tutti gli ID dei tag che seleziono, non mi resta che fare quello che devo... ;)
Mi chiedevo, visto che sono un po' niubbo in materia di php e javascript, ho installato firebug per firefox, ma non c'è modo di controllare la sintassi degli script con firebug per evitare errori come questi?
L'ho aperto, l'ho attivato, mi da molte info utili, ma non ho trovato un controllo della sintassi.. qualcosa mi dice che non l'ho trovato ma in realtà c'è :) :confused: