Risposte:
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.
Penso che tu voglia .text():
var monthname = $(this).text();
Per recuperare il testo di un valore di span generato automaticamente, basta fare questo:
var al = $("#id-span-name").text();
alert(al);
-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>
.live()è deprecato in 1.7 e rimosso in 1.9+