$ (this) .val () non funziona per ottenere testo da span usando jquery


97

Dando questo html, voglio prendere "August" da esso quando ci clicco sopra:

<span class="ui-datepicker-month">August</span>

Provai

$(".ui-datepicker-month").live("click", function () {
    var monthname =  $(this).val();
    alert(monthname);
});

ma non sembra funzionare

Risposte:


210

Invece di .val()usare .text(), in questo modo:

$(".ui-datepicker-month").live("click", function () {
    var monthname =  $(this).text();
    alert(monthname);
});

O in jQuery 1.7+ usa on()come livedeprecato:

$(document).on('click', '.ui-datepicker-month', function () {
    var monthname =  $(this).text();
    alert(monthname);
});

.val()è per elementi di tipo di input (incluse aree di testo e menu a discesa), poiché hai a che fare con un elemento con contenuto di testo, usa .text()qui.


3
NOTA: .live()è deprecato in 1.7 e rimosso in 1.9+
Darren

Sia .html () che .text () hanno funzionato per il mio elemento span.
lft93ryt


8

Per recuperare il testo di un valore di span generato automaticamente, basta fare questo:

var al = $("#id-span-name").text();    
alert(al);

5

-Nessuno dei precedenti ha funzionato costantemente per me. Quindi ecco la soluzione che ho elaborato che funziona in modo coerente su tutti i browser poiché utilizza funzionalità di base. Spero che questo possa aiutare gli altri. Usare jQuery 8.2

1) Ottieni l'oggetto jquery per "span". 2) Ottieni l'oggetto DOM dall'alto. Usando jquery .get (0) 3) Usando il testo interno dell'oggetto DOM ottieni il testo.

Qui c'è un semplice esempio

var curSpan = $(this).parent().children(' span').get(0);
var spansText = curSpan.innerText;

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>

4

È possibile utilizzare .html()per ottenere il contenuto di spane odiv elementi.

esempio:

    var monthname =  $(this).html();
    alert(monthname);

3

Eccoci qui:

$(".ui-datepicker-month").click(function(){  
var  textSpan = $(this).text();
alert(textSpan);   
});

Spero che sia d'aiuto;)


1

.val()è per gli elementi di input, usa .html()invece

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.