document.getElementsByClassName non funziona

PHP

Utente Attivo
9 Mag 2013
105
0
16
Non riesco a capire perchè questo script semplicissimo non funziona:
Codice:
	document.getElementsByClassName('prova').setAttribute("style", "background: white;");
Se provo a farlo per id funziona:
Codice:
	document.getElementById('prova').setAttribute("style", "background: white;");
ma visto che per id dovrei crearne uno per ogni elemento non va bene. Dove sbaglio?
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Grazie della risposta, adesso funziona ma mi dà un piccolo problema che non avevo previsto.
Andando sul primo link, si attiva la funzione prova a tutti gli elementi che presentano quella classe. Se si và con il mouse sul primo elemento cambia colore, ma lo fanno anche il 2o e il 3o ad esempio. Come blocco questa catena?
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Esatto, avevo pensato di dare ad ognuno un id diverso, ma visto che devono avere gli stessi attributi avevo pensato ad una classe, ma è uscito quest'altro problema.
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Ti spiego, io ho fatto il menù da 0 con i css, poi ho creato javascript per tenere selezionato('solo come effetto ottico') la voce del menu principale che aveva aperto i sottomenu sui quali adesso si è spostato il mouse.
Alla fine ottengo due effetti hover, uno sul menù principale e uno sul sottomenu selezionati.
Come mi hai fatto tu l'effetto ottengo quello di partenza che avevo con i css, e quello con jquery mi sembra un'alternativa ai css(che in effetti ottengo con molto meno codice di javascirpt, ma non era tutto il contrario?:confused:)
Comunque ho capito che il problema è che avendo la stessa classe tutti gli elementi vengono influenzati con lo stesso effetto contemporaneamente, cosa che non succederebbe con l'id ad esempio, ma vorrei evitare di creare 4-5 id diversi per poi fare copia e incolla e cambiare solo il nome, visto che devono avere lo stesso effetto.
Non è possibile fare una specie di array e distinguere tutte le chiamate che vengono fatte sulla stessa classe? In questo modo metterei [0], ecc e risolverei il problema.
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Forse ho capito, devo trovare il modo di estrarre solo l'array del menu corrispondente e non estrarre tutto $i.
Provo poi ti faccio sapere, nel frattempo dimmi se sei d'accordo o meno
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Perfetto, non conoscevo questa dicitura nel css ">", funziona alla grande, propio quello che cercavo. Grazie a te javascript l'ho ridotto all'osso, adesso fà in modo solo che il menù non scompaia subito se si esce per sbagli con il mouse fuori dal menu.:byebye:
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Grazie della risposta, ho provato i tuoi esempi, ma non ottengo lo stesso effetto che ho con javascript (riesco a ritardare l'entrata del menù agendo sull'hover, ma non la sua scomparsa). Ho cercato su google e ho provato a rifarlo, basandomi sul css che mi hai dato e ho provato ad aggiungere anche "ease-in-out" su alcuni comandi. Farò altri entativi prima di abbandorare questa strada, perchè credo che se funzioni sia meglio un css per una cosa del genere che javascript. Grazie per l'aiuto che mi stai dando.
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Grazie per la correzione, adesso riesco a vedere l'effetto, ma non riesco ad adattarlo a #prova. Ho provato ad usare nav dentro il menu, ma non mi dà l'effetto voluto, o meglio lo dà, ma mi crea sproporzioni, prima il menu mi dà l'effetto, ma mi stampa solo 4 campi, invece di 10 e lo stesso solo all'effetto "out" crea magicamente i menu mancanti e poi scompare al termine dei secondi prestabiliti, poi se stampa tutti i valori, all'effetto out la composizione si rovina, cambiando da un effetto "colonna" ad uno "riga", quando ho specificato ovunque l'effetto display: block, e visto hc eho levato ogni altro displai diverso non sò propio da dove prenda il valore che causa la sproporzione, poi ho provato a cambiare "<div id=prova><nav>.." semplicemente in <nav>, dando a nav i valori di prova e niente, poi ho provato a integrare nav dentro prova togliendolo lasciando così solo <div id=prova>, ecc.
Ci sono stato due ore e mezza circa:crying:. Come devo fare? Dimenticavo, ovviamente non ho cambiato solo il nome tra nav e #prova, ma ho riscritto pure la sintassi del css per renderla compatibile, altrimenti non stampa nulla ovvio. Scusa per la seccatura, questa è l'ultima cosa che ti chiedo sull'argomento.
 

Fez Vrasta

Utente Attivo
11 Mag 2013
409
0
0
sostituisci tutti i "nav" con "#prova" e sostituisci <nav> con <div id="prova">

comunque è meglio tenere nav, è l'elemento pensato apposta per i menu
 

PHP

Utente Attivo
9 Mag 2013
105
0
16
Se faccio delle sostituzioni di nav con #prova, il menu comincia a sballarmi gli elementi. Comunque credo di aver capito il problema. Ho applicato ovunque una transiione, per vedere dove funzionava e dove non, e il risultato è che funziona ovunque tranne che quando si esce fuori dal menu con il mouse.
Ho visto nel tuo esempio che è "nav > ul > li > ul" ad influenzare la scomparsa del menu dopo i ltempo specificato, ma con me questo non funziona. Se al posto di "nav >ul > li > ul" metto "#prova ul li ul", l'effetto che ottengo è solo quello di ritardare l'effetto al passaggio del mouse, quindi ottendo un ritardo di un hover, non di un out.
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 document.getElementsByName con wild character Javascript 5
P javascript:document.forms Javascript 7
Cosina Link in document ready function jQuery 0
A [Javascript] document createElement Javascript 0
gandalf1959 [Javascript] document.getElementById non funziona come mi aspetto Javascript 4
A sito responsive - calcolare l'altezza document di 2 php Ajax 4
C if dentro document.getElementById("").innerHTML Javascript 1
S IE document mode standard HTML e CSS 2
Devil-94 document.scripts restiture tutti script presenti nella pagina. Javascript 3
L sostituzione contenuto diversi div con document.getelementbyid Javascript 1
Devil-94 Creare elemento nella tabella con document.createElement("td") Javascript 1
K nome host della macchina (document.location.hostname) non funziona Javascript 1
L document.getElementById .textContent o altro? Javascript 6
A Navigazione jQuery [era: $(document).ready(function(){] jQuery 3
C document.getElementById("xxxxx").innerHTML iterato con un for Javascript 11
Shyson getElementById o document.write? Javascript 3
F Document type does not allow element DIV here HTML e CSS 3
voldemort Diffrenza tra $(document).ready vs. $(window).load jQuery 1
E titolo pagina con document.getElementsByTagName('title') Javascript 4
emanuelevt document.body.scrollTop - window.onscroll Javascript 0
A document.lastmodified ritorna data odierna!? Javascript 0
N semplice document.write() Javascript 1
SolidSnake4 type document HTML e CSS 1
B concatenare stringhe nel document Javascript 1
G Sostituzione di document.all Javascript 1
I Conta pagine document dinamico Javascript 3
F Cookie e document.write Javascript 15
F Inserire HTML del document in una variabile Javascript 4
S Dimensioni di document Javascript 1
B problema con document.form3.<nome_campo>.value Javascript 1
A Problemi con getElementsByClassName! Javascript 1
jan267 Problema con funzione getElementsByClassName Javascript 2
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
I nome utente non esiste nel database PHP 1
M Drag and Drop non capisco le sequenze... Javascript 1
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
M Immagini non usate WordPress 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
G Numero zero null non deve visualizzare nulla PHP 0
F Paypal _xclick IPN non risponde PHP 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
E Alert non viene mostrato PHP 1
felino Hardisk WD SATA 1TB 3.5" non si avvia! Hardware 4
K Scrip non funzionante Javascript 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
Sevenjeak Php8 non carica estenzioni PHP 0

Discussioni simili