Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Prelevare testo del tag figlio

    Ciao a tutti
    Premetto che sto usando il framework jquery da poco di solito uso javascript senza alcun framework
    Devo prelevare il testo in un tag span:

    codice HTML:
    <button id="btPrimo" type="vutton">
    <span class="....">Hello World</span>
    </button>
    Ora vorrei che qualcuno mi spiegasse questi strani comportamenti:

    codice:
    $("#btPrimo").on("click", () => {
         alert($(this).find("span").text());     // qui non mi estrae nulla
         alert($("span", this).text();             // qui non mi estrae nulla
         alert($("#btPrimo span").text()       // qui ottengo il testo
    }
    eppure dovrebbero essere tutti e 3 la stessa cosa ma non lo è solo l'ultimo mi da il testo?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,302
    Quote Originariamente inviata da techno Visualizza il messaggio
    Ora vorrei che qualcuno mi spiegasse questi strani comportamenti: [...]
    eppure dovrebbero essere tutti e 3 la stessa cosa ma non lo è solo l'ultimo mi da il testo?
    Se usi una arrow function per il tuo callback, il valore di this NON è quello che ti aspetti.

    Leggi questo articolo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ah ok ecco allora il problema, grazie

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Quoto alka è aggiungo: se vuoi usare un'arrow function come listener di evento, per fare riferimento all'oggetto a cui è applicato tale listener puoi usare la proprietà currentTarget dell'oggetto event che viene passato come argomento della funzione callback.

    Puoi provare in questo modo o con metodi analoghi:
    codice:
    $('#btPrimo').on('click', e => {
      const me = e.currentTarget;
      console.log(me); // "me" fa riferimento all'elemento #btPrimo
    });
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.