Respostas:
Em vez de .val()
usar .text()
, assim:
$(".ui-datepicker-month").live("click", function () {
var monthname = $(this).text();
alert(monthname);
});
Ou no jQuery 1.7+, use on()
como live
está obsoleto:
$(document).on('click', '.ui-datepicker-month', function () {
var monthname = $(this).text();
alert(monthname);
});
.val()
é para elementos de tipo de entrada (incluindo áreas de texto e menus suspensos), uma vez que você está lidando com um elemento com conteúdo de texto, use .text()
aqui.
Eu acho que você quer .text()
:
var monthname = $(this).text();
Para recuperar o texto de um valor de span gerado automaticamente, faça o seguinte:
var al = $("#id-span-name").text();
alert(al);
-Nenhuma das opções acima funcionou consistentemente para mim. Então, aqui está a solução que desenvolvi que funciona de forma consistente em todos os navegadores, pois usa funcionalidades básicas. Espero que isso possa ajudar outras pessoas. Usando jQuery 8.2
1) Obtenha o objeto jquery para "span". 2) Obtenha o objeto DOM de cima. Usando jquery .get (0) 3) Usando o innerText do objeto DOM, obtenha o texto.
Aqui está um exemplo simples
var curSpan = $(this).parent().children(' span').get(0);
var spansText = curSpan.innerText;
HTML
<div >
<input type='checkbox' /><span >testinput</span>
</div>
.live()
foi descontinuado em 1.7 e removido em 1.9+