$ (this) .val () nie działa, aby pobrać tekst z zakresu za pomocą jquery

97

Podając ten html, chcę pobrać z niego „August” po kliknięciu:

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

próbowałem

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

ale nie wydaje się działać

leora
źródło

Odpowiedzi:

210

Zamiast .val()używać .text(), jak to:

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

Lub w jQuery 1.7+ używaj on()jako liveprzestarzałe:

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

.val()dotyczy elementów typu wejściowego (w tym obszarów tekstowych i list rozwijanych), ponieważ masz do czynienia z elementem z treścią tekstową, użyj .text()tutaj.

Nick Craver
źródło
3
UWAGA: .live()jest przestarzałe w wersji 1.7 i usunięte w wersji 1.9+
Darren
Zarówno .html (), jak i .text () działały z moim elementem span.
lft93ryt
20

Myślę, że chcesz .text():

var monthname = $(this).text();
Matthew Jones
źródło
8

Aby pobrać tekst automatycznie wygenerowanej wartości zakresu, wykonaj następujące czynności:

var al = $("#id-span-name").text();    
alert(al);
Święty Rycerz
źródło
5

-Żadna z powyższych konsekwentnie nie działała dla mnie. Oto rozwiązanie, które wypracowałem, które działa konsekwentnie we wszystkich przeglądarkach, ponieważ wykorzystuje podstawowe funkcje. Mam nadzieję, że to pomoże innym. Korzystanie z jQuery 8.2

1) Pobierz obiekt jquery dla „span”. 2) Pobierz obiekt DOM z góry. Używanie jquery .get (0) 3) Używając innerText obiektu DOM pobierz tekst.

Oto prosty przykład

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

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>
Farjad
źródło
4

Możesz użyć, .html()aby pobrać zawartość spani lubdiv elementów.

przykład:

    var monthname =  $(this).html();
    alert(monthname);
Ari
źródło
3

No to ruszamy:

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

Mam nadzieję, że to pomoże;)

praguan
źródło
1

.val()służy do elementów wejściowych, .html()zamiast tego użyj

graycrow
źródło