[Javascript] Rercupero etichetta

zorro

Utente Attivo
20 Ott 2014
324
21
28
ROMA
Salve a tutti,
non essendo molto ferrrato in javascript vorrei un parere da chi ne sa di piu.
Ho tre pulsanti sullo schermo contrassegnati da 1, 2 e 3. Se io definisco i pulsanti come div (#div1, #div2 e #div3, quindi con tre definizioni distinte), posso recuperare l'etichetta del div cliccato con ad es.
div.innerHTML
ma se definisco i tre div come una classe (.div, anche perchè i tre pulsanti sono identici, cambia solo l'etichetta) div.innerHTML non funziona più; ho provato anche a sostituire div con this ma senza esito.
Secondo voi è fattibile una cosa del genere o devo definire un div per ogni pulsante?
Grazie a chiunque vorrà aiutarmi.


Zorro
 

zorro

Utente Attivo
20 Ott 2014
324
21
28
ROMA
PS Inserisco il codice (per comodità ho usato un solo pulsante):

Codice:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#pippo {
    width:40px;
    height:40px;
    border:solid 2px  green;
}
</style>
</head>
<div id="pippo" onclick="maxi()">
      89
</div>
<body>

<script>
function maxi() {
    var tasto =  pippo.innerHTML;
    alert(tasto);
}
</script>

</body>
</html>


ma se sostituisco:


Codice:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.pippo {
    width:40px;
    height:40px;
    border:solid 2px  green;
}
</style>
</head>
<div class="pippo" onclick="maxi()">
      89
</div>
<body>

<script>
function maxi() {
    var tasto =  pippo.innerHTML;
    alert(tasto);
}
</script>

</body>
</html>

non funziona più
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
436
73
28
Ciao, si può fare in vari modi. L'uso di this in questo caso può essere utile per risolvere. Una soluzione può essere quella di passare proprio this come argomento della funzione.

Secondo voi è fattibile una cosa del genere o devo definire un div per ogni pulsante?
Certamente è fattibile. Direi piuttosto che si tratta di nozioni base di JavaScript (o in generale della programmazione orientata agli oggetti), per cui se il tuo interesse è mirato all'apprendimento di tale linguaggio, ti consiglierei eventualmente di valutare lo studio di qualche guida di base così da fare tuoi certi concetti.

Qui il tuo esempio rielaborato:
Codice:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<style>
.pippo {
    width:40px;
    height:40px;
    border:solid 2px  green;
}
</style>
</head>
<body>
<div class="pippo" onclick="maxi(this)">
      89
</div>
<div class="pippo" onclick="maxi(this)">
      Altro DIV
</div>

<script>
function maxi(questo) {
    var tasto =  questo.innerHTML;
    alert(tasto);
}
</script>

</body>
</html>

Nota che ho definito il parametro "questo" (come argomento della funzione). Sostanzialmente è una variabile locale di tale funzione, la quale fa riferimento al this che ho passato nelle chiamate della stessa funzione. La parola chiave this non è altro che un riferimento all'elemento specifico in base al contesto in cui è adoperata. In questo caso farà riferimento ad ogni specifico div da cui viene richiamata quella funzione.

Buon proseguimento.


PS: occhio, sul tuo codice HTML ci sono degli errori strutturali come quel <div> che hai inserito prima dell'apertura del <body>. Consiglio sempre, soprattutto nella fase di sviluppo, di passare il codice in un validatore (vedi qui) per assicurarsi di lavorare sempre con un codice valido, così da evitare eventuali risultati inattesi per possibili errori di validazione.
 

zorro

Utente Attivo
20 Ott 2014
324
21
28
ROMA
Ciao WmbertSea,
ti ringrazio della risposta e dei consigli. In effetti ho una guida, ma non è molto chiara. Ho provato anche ad utilizzare jQuery, col quale ho più dimestichezza, ma anche in quel caso ho trovato dei problemi, anche se di altra natura.
Per quanto riguarda il <body> hai ragione: me ne sono accorto solo dopo aver postato il codice.
Tornando quindi al problema principale dovrei passare this come argomento della funzione. Grazie ancora dell'aiuto.


Zorro
 

zorro

Utente Attivo
20 Ott 2014
324
21
28
ROMA
GRANDEEEE!!!! Funziona alla grande!!
Mi perdo sempre in un bicchier d'acqua: se non passo alla funzione this come parametro, come faccio a leggere l'etichetta (di chi?). Grazie ancora della dritta


Zorro
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Creare un banner temporaneo JavaScript Javascript 0
S Impossibile scorrere un oggetto in JavaScript Javascript 0
N Passare array da php a javascript PHP 5
L Quiz javascript funzionante da migliorare Javascript 0
P errore 404 con javascript Javascript 2
D aiuto funzioni javascript Javascript 1
M Upload immagine con javascript problemi con FormData() Javascript 1
L countdown multiplo javascript Javascript 1
S Problemi Javascript + Aruba Javascript 2
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 1
F Creare elementi html con javascript Javascript 3
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
P Passaggio id php a javascript PHP 6
R Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript PHP 0
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
G Problema verifica palindromo e verifica pari e dispari javascript Javascript 0
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
R Cerco supporto in programmazione javascript Offerte e Richieste di Lavoro e/o Collaborazione 0
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 18
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1

Discussioni simili