$ (this) .val () no funciona para obtener texto de span usando jquery


97

Dando este html, quiero tomar "August" cuando hago clic en él:

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

Lo intenté

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

pero no parece estar funcionando

Respuestas:


210

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í.


3
NOTA: .live()está obsoleto en 1.7 y eliminado en 1.9+
Darren

Tanto .html () como .text () funcionaron para mi elemento span.
lft93ryt


8

Para recuperar el texto de un valor de intervalo generado automáticamente, simplemente haga esto:

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

5

-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>

4

Puede utilizar .html()para obtener contenido de spanyo divelementos.

ejemplo:

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

3

Aquí vamos:

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

Espero eso ayude;)


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.