Respuestas:
En lugar de .val()usar .text(), así:
$(".ui-datepicker-month").live("click", function () {
var monthname = $(this).text();
alert(monthname);
});
O en jQuery 1.7+ use on()como liveestá en desuso:
$(document).on('click', '.ui-datepicker-month', function () {
var monthname = $(this).text();
alert(monthname);
});
.val()es para elementos de tipo de entrada (incluidas áreas de texto y menús desplegables), ya que se trata de un elemento con contenido de texto, utilice .text()aquí.
Creo que quieres .text():
var monthname = $(this).text();
Para recuperar el texto de un valor de intervalo generado automáticamente, simplemente haga esto:
var al = $("#id-span-name").text();
alert(al);
-Ninguno de los anteriores funcionó constantemente para mí. Así que aquí está la solución que encontré que funciona de manera consistente en todos los navegadores, ya que utiliza una funcionalidad básica. Espero que esto pueda ayudar a otros. Usando jQuery 8.2
1) Obtenga el objeto jquery para "span". 2) Obtenga el objeto DOM de arriba. Usando jquery .get (0) 3) Usando innerText del objeto DOM, obtenga el texto.
He aquí un ejemplo sencillo
var curSpan = $(this).parent().children(' span').get(0);
var spansText = curSpan.innerText;
HTML
<div >
<input type='checkbox' /><span >testinput</span>
</div>
.val()es para elementos de entrada, utilice .html()en su lugar
.live()está obsoleto en 1.7 y eliminado en 1.9+