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

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.


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


8

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

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

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>

4

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

contoh:

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

3

Kita mulai:

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

Semoga membantu;)


1

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.