$ (this) .val () tidak berfungsi untuk mendapatkan teks dari span menggunakan jquery

97

Memberikan html ini, saya ingin mengambil "Agustus" darinya ketika saya mengkliknya:

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

Saya mencoba

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

tapi sepertinya tidak berhasil

leora
sumber

Jawaban:

210

Daripada .val()digunakan .text(), seperti ini:

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

Atau di jQuery 1.7+ gunakan on()seperti yang livesudah tidak digunakan lagi:

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

.val()adalah untuk elemen tipe input (termasuk textareas dan dropdown), karena Anda berurusan dengan elemen dengan konten teks, gunakan di .text()sini.

Nick Craver
sumber
3
CATATAN: .live()tidak digunakan lagi di 1.7 dan dihapus di 1.9+
Darren
Baik .html () dan .text () bekerja untuk elemen span saya.
lft93ryt
20

Saya pikir Anda ingin .text():

var monthname = $(this).text();
Matthew Jones
sumber
8

Untuk mengambil teks dari nilai span yang dibuat secara otomatis, lakukan ini:

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

-Tidak ada satu pun di atas yang secara konsisten berhasil untuk saya. Jadi, inilah solusi yang saya kerjakan yang berfungsi secara konsisten di semua browser karena menggunakan fungsionalitas dasar. Semoga ini dapat membantu orang lain. Menggunakan jQuery 8.2

1) Dapatkan objek jquery untuk "span". 2) Dapatkan objek DOM dari atas. Menggunakan jquery .get (0) 3) Menggunakan innerText objek DOM dapatkan teksnya.

Berikut ini contoh sederhananya

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

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>
Farjad
sumber
4

Anda dapat menggunakan .html()untuk mendapatkan konten spandan atau divelemen.

contoh:

    var monthname =  $(this).html();
    alert(monthname);
Ari
sumber
3

Kita mulai:

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

Semoga membantu;)

praguan
sumber
1

.val()adalah untuk elemen masukan, gunakan .html()saja

abu-abu
sumber