PDA

View Full Version : [Javascript] Inserimento testo in DIV


Fede 88
06-11-2009, 11:34
Sto cercando di inserire una stringa di testo in una div utilizando una funzione Javascript però non funziona.

Il codice che che sto usando è questo:
document.registrazione.div_username.innerHTML = "CIAO";

l'errore che mi da è questo:

Message: 'document.registrazione.div_username' is null or not an object
Line: 11
Char: 5
Code: 0
URI: file:///C:/Users/FEDE/Desktop/form.html

vhost87
06-11-2009, 11:56
document.getElementById('nome_id').innerHTML = "CIAO"
:)

MEMon
06-11-2009, 12:01
In quel modo accedi agli elementi propri di un form, gli <input> ad esempio.
Per accedere al div(o a qualsiasi elemento html), se disponi del suo id(e ne disponi se te ne interessa il dom) fai:

document.getElementById(id_elemento);

Fede 88
06-11-2009, 12:02
Se ho tante DIV con lo stesso id c'è modo di selezionarne solo una, per eesempio usando il name della div?

MEMon
06-11-2009, 12:09
Tante id non le puoi avere, l'id è un identificativo e deve essere unico per correttezza.

Per ricavare il dom di tanti elementi con lo stesso nome puoi fare così:

document.getElementsByName(nome_element);


Qui (http://www.javascriptkit.com/domref/) tutte le funzioni per giocare coi dom degli elementi html.

vhost87
06-11-2009, 12:11
Tante id non le puoi avere, l'id è un identificativo e deve essere unico per correttezza.

Per ricavare il dom di tanti elementi con lo stesso nome puoi fare così:

document.getElementsByName(nome_element);


Qui (http://www.javascriptkit.com/domref/) tutte le funzioni per giocare coi dom degli elementi html.

Esatto... id sta per identificatore... e un identificatore deve essere univoco :confused: altrimenti non avrebbe senso di esistere :D

Come dice Memon utilizzi i name per avere lo stesso nome con valori diversi (esempio palese i radiobutton...).

Nel mio esempio sopra ho dimenticato un ; a fine riga :S

Fede 88
06-11-2009, 12:13
Il fatto è che ho 8 div con caratteristiche uguali, quindi ho creato un CSS con le caratteristiche, poi gli ho dato a tutte quel ID. Non va bene?

vhost87
06-11-2009, 12:15
Il fatto è che ho 8 div con caratteristiche uguali, quindi ho creato un CSS con le caratteristiche, poi gli ho dato a tutte quel ID. Non va bene?

No, ... ogni div deve avere un ID diverso e poi associ una classe diversa per ognuno degli 8 div... :)

Fede 88
06-11-2009, 12:19
Dovrei creare 8 classi con le stesse caratteristiche ma con nome diverso?

vhost87
06-11-2009, 12:28
Dovrei creare 8 classi con le stesse caratteristiche ma con nome diverso?

No... crei una sola classe e la associ ad ogni elemento.
Se poi devi modificare una piccola parte, che ne so il colore di un font, crei una classe figlia, erediti tutto da questa e modifichi il colore del font.

_Claudio
06-11-2009, 12:29
Spero che tu stia facendo qualcosa di didattico...
Comunque:
ID: IDENTIFICATORE che DEVE essere univoco.
classe: classificazione di più elementi, può essere associata a più elementi.

Nel css:

div.nome_classe {
/* proprietà */
}


Nel codice html:

<div class="nome_classe" name="trovami"> contenuti 1 </div>
<div class="nome_classe" name="trovami"> contenuti 2 </div>
<div class="nome_classe" name="trovami"> contenuti 3 </div>
<div class="nome_classe" name="trovami"> contenuti 3 </div>
<div class="nome_classe" name="trovami"> contenuti 3 </div>
<div class="nome_classe" name="trovami"> contenuti 3 </div>
<div class="nome_classe" name="trovami"> contenuti 3 </div>
<div class="nome_classe" name="trovami"> contenuti 3 </div>


Nel file javascript:

var miei_div=document.getElementsByName("trovami");
miei_div.item(0);
miei_div.item(2);
miei_div.item(3);
miei_div.item(4);
...

Fede 88
06-11-2009, 12:49
Spero che tu stia facendo qualcosa di didattico...

Perchè?

Comuqnue...

Io facevo in questo modo:

#div_center {
float: left;
width: 245px;
height: 24px;
background-color: white;
background-repeat: repeat-y;
margin: auto;
padding: 0px;
text-align: center;
}


Poi:
<DIV id="div_center"...

Quindi dovrei modificarlo in questo modo:

#div.ESEMPIO {
float: left;
width: 245px;
height: 24px;
background-color: white;
background-repeat: repeat-y;
margin: auto;
padding: 0px;
text-align: center;
}
e poi...
<div class="ESEMPIO" ...

Giusto?

_Claudio
06-11-2009, 14:42
Così è corretto.

Perchè?


Perchè così come non si va a fare i cuochi in un ristorante senza saper cucinare un piatto di pasta, allo stesso modo non ci si improvvisa webmaster o altro senza sapere queste cose basilari.