sostituzione contenuto diversi div con document.getelementbyid

littleham

Nuovo Utente
9 Gen 2015
3
0
0
Salve a tutti,
avrei un problema che non riesco a risolvere e non trovo soluzioni mediante ricerca.
Ho un sito web realizzato in html, all'interno di tutte le pagine vi è richiamato un js esterno che mi occorre per cambiare dinamicamente alcuni div con i rispettivi id (tutti ovviamente differenti tra loro).
Per sostituire i contenuti dei vari div utilizzo il seguente codice:
Codice:
document.getElementById("nomeid").innerHTML ='...';
Quando richiamo la prima volta il codice funziona perfettamente, quando voglio invece sostituire il contenuto di un altro div, pur avendo il nome id differente e pur volendo inserire altro codice html rispetto al primo nodo, non legge la modifica. quindi riassumendo se scrivo:
Codice:
document.getElementById("nomeid").innerHTML ='...';
Codice:
document.getElementById("altroid").innerHTML ='...';
il secondo non viene letto e non avviene la modifica.
Sono un neofita di js, conosco pochissimo il linguaggio, mi servirebbe soltanto una dritta per la suddetta procedura, ho letto che getElementById deve essere univoco e non può al suo interno raccogliere diversi id per fargli fare la stessa cosa, ma non è il mio caso, io voglio che ogni id venga sostituito con codice html differente. è possibile?
Grazie.
 

narc0x

Utente Attivo
10 Ott 2008
128
2
18
Ciao littleham e benvenuto sul forum.

Confermo quanto hai detto, getElementById da' per scontato che ci sia un solo elemento con quello specifico ID (da qui il termine ID = Identificatore), di conseguenza se ci sono piu' elementi con lo stesso ID la modifica del DOM attraverso javascript fallisce.

Se hai bisogno di assegnare un "identificativo" a piu' elementi puoi assegnare una classe e ciclarle per modificarne il contenuto.

Ti ho fatto un esempio su jsfiddle http://jsfiddle.net/jsh9Lxsz/
 
Ultima modifica:

littleham

Nuovo Utente
9 Gen 2015
3
0
0
Ciao littleham e benvenuto sul forum.

Confermo quanto hai detto, getElementById da' per scontato che ci sia un solo elemento con quello specifico ID (da qui il termine ID = Identificatore), di conseguenza se ci sono piu' elementi con lo stesso ID la modifica del DOM attraverso javascript fallisce.

Se hai bisogno di assegnare un "identificativo" a piu' elementi puoi assegnare una classe e ciclarle per modificarne il contenuto.

Ti ho fatto un esempio su jsfiddle http://jsfiddle.net/jsh9Lxsz/
Ciao, grazie per avermi risposto.
Come detto gli id sono differenti ed a loro interno vanno diverse parti di html, per intenderci: nella pagina CHI SIAMO ho il div dall'id "contenutochisiamo" nella pagina CONTATTI ho il div dall'id "contenutocontatti", ora avendo un solo js richiamato in tutte le pagine se lo creo scrivendo:

Codice:
document.getElementById("contenutochisiamo").innerHTML ='...';
document.getElementById("contenutocontatti").innerHTML ='...';
Il secondo getElementById non viene riconosciuto. Qualcuno sa dirmi perche' e come risolvere il problema?
Il problema può essere che alcuni getElementById sono presenti soltanto in una pagina ed altri soltanto in un'altra quindi quando legge il js non trovando l'id va in errore?
Come si potrebbe risolvere? ho provato con una condizione if ma non sono molto esperto di javascript e non so se ho fatto qualche errore, ma comunque considerava sempre soltanto il primo getElementById