$ (this) .val () không hoạt động để lấy văn bản từ span bằng jquery


97

Đưa ra html này, tôi muốn lấy "August" từ nó khi tôi nhấp vào nó:

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

tôi đã thử

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

nhưng dường như không hoạt động

Câu trả lời:


210

Thay vì .val()sử dụng .text(), như thế này:

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

Hoặc trong jQuery 1.7+ sử dụng on()như livekhông được dùng nữa:

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

.val()là dành cho các phần tử kiểu đầu vào (bao gồm các vùng văn bản và danh sách thả xuống), vì bạn đang xử lý một phần tử có nội dung văn bản, hãy sử dụng .text()tại đây.


3
LƯU Ý: .live()không dùng nữa trong phiên bản 1.7 và bị loại bỏ trong phiên bản 1.9+
Darren

Cả .html () và .text () đều hoạt động cho phần tử span của tôi.
lft93ryt


8

Để truy xuất văn bản của giá trị span được tạo tự động, chỉ cần thực hiện như sau:

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

5

-Không có cách nào ở trên luôn hiệu quả với tôi. Vì vậy, đây là giải pháp tôi đã tìm ra hoạt động nhất quán trên tất cả các trình duyệt vì nó sử dụng chức năng cơ bản. Hy vọng điều này có thể giúp những người khác. Sử dụng jQuery 8.2

1) Lấy đối tượng jquery cho "span". 2) Lấy đối tượng DOM từ phía trên. Sử dụng jquery .get (0) 3) Sử dụng innerText của đối tượng DOM để lấy văn bản.

Đây là một ví dụ đơn giản

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

HTML

<div >
<input type='checkbox' /><span >testinput</span> 
</div>

4

Bạn có thể sử dụng .html()để lấy nội dung của spanvà hoặcdiv các phần tử.

thí dụ:

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

3

Chúng ta bắt đầu:

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

Hy vọng nó giúp;)


1

.val()là cho các yếu tố đầu vào, sử dụng .html()thay thế

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.