Câu hỏi Lấy văn bản đã chọn từ danh sách thả xuống (hộp chọn) bằng cách sử dụng jQuery


Làm thế nào tôi có thể nhận được các văn bản được lựa chọn (không phải là giá trị được chọn) từ một danh sách thả xuống trong jQuery?


1989
2017-10-29 12:02


gốc


Chỉ hai xu của tôi: Một danh sách thả xuống "ASP" không có gì đặc biệt; nó chỉ là HTML cũ tốt. :-) - dotslash
Người ta có thể tham khảo bài viết này: javascriptstutorial.com/blog/… - Dilip Kumar Yadav
cho cách javascript vanilla, xem stackoverflow.com/a/5947/32453 - rogerdpack


Các câu trả lời:


$("#yourdropdownid option:selected").text();

3320
2017-10-29 12:05



Tôi nghĩ rằng điều này nên $("#yourdropdownid").children("option").filter(":selected").text() vì is () trả về một boolean cho dù đối tượng có khớp với bộ chọn hay không. - MHollis
Tôi thứ hai bình luận về là () trả về một boolen; cách khác, sử dụng thay đổi nhỏ sau đây: $ ('# yourdropdownid'). children ("option: selected"). text (); - scubbo
@ DT3 thử nghiệm is("selected").text() trả về một TypeError: Object false has no method 'text' - ianace
@ DT3, anh ấy không sai về tốc độ. Dưới đây là một số thống kê nhanh chạy trên một dropdownically có kích thước thực tế (8 hoặc hơn). - Adam Tomat
$('select').children(':selected') là cách nhanh nhất: jsperf.com/get-selected-option-text - Simon


Thử cái này:

$("#myselect :selected").text();

Đối với một danh sách thả xuống ASP.NET, bạn có thể sử dụng bộ chọn sau:

$("[id*='MyDropDownId'] :selected")

236
2017-10-29 12:04



Phiên bản ASP.NET ở đây là Jquery duy nhất làm việc với asp.net cho tôi, do đó tôi đồng ý với điều đó. Cái này: ('$ ("# tùy chọn dropdropdown của bạn: đã chọn"). text ();' đã không làm việc trong một trang asp.net bằng cách sử dụng một trang chủ. - netfed
nó không hoạt động vì trang master asp.net ném các ký tự ngẫu nhiên ở phía trước của bộ chọn. Đó là kỹ thuật tìm kiếm một cái gì đó như ("#ct0001yourdropdownid) - CSharper
javascriptstutorial.com/blog/… - Dilip Kumar Yadav
@CSharper - Tôi nghĩ rằng hãy nói ASP.NET ném các ký tự ngẫu nhiên khá là gây hiểu nhầm. Chúng hoàn toàn không ngẫu nhiên, chúng là cấu trúc và tuân thủ các quy tắc nghiêm ngặt (dựa trên những thứ như bạn đặt ID trên kiểm soát của bạn, và nếu không thì dựa trên chỉ số của nơi chúng xuất hiện ở cấp độ hiện tại của cây, v.v ...) - freefaller
Hi làm thế nào để bạn làm điều này bên trong một hàng bảng / tế bào, làm thế nào để bạn biết được thả xuống từ bảng, đặc biệt là trong ASP MVC 5 - transformer


Các câu trả lời được đăng ở đây, ví dụ:

$('#yourdropdownid option:selected').text();

đã không làm việc cho tôi, nhưng điều này đã làm:

$('#yourdropdownid').find('option:selected').text();

Nó có thể là một phiên bản cũ của jQuery.


185
2018-03-19 11:41



Câu trả lời khác làm việc với phiên bản mới nhất của Jquery. - Doomsknight
Đừng ghét về câu trả lời này. Sử dụng từ khóa "find" đã làm điều đó cho tôi. Tôi đã đến từ một bối cảnh hoàn toàn khác. - ROFLwTIME
bạn không cần phần tùy chọn ở tất cả vì nó được ngụ ý với lựa chọn .. chỉ cần sử dụng $ ('# yourdropdownid: selected'). text (); sẽ làm việc tốt - Dss
jquery-1.10.2.min, cái này làm việc cho tôi chứ không phải người khác. - kubilay


Nếu bạn đã có danh sách thả xuống có sẵn trong một biến, đây là những gì phù hợp với tôi:

$("option:selected", myVar).text()

Các câu trả lời khác về câu hỏi này đã giúp tôi, nhưng cuối cùng là chuỗi diễn đàn jQuery $ (this + "option: selected"). tùy chọn attr ("rel") được chọn không hoạt động trong IE đã giúp nhiều nhất.

Cập nhật: sửa liên kết ở trên


93
2018-02-04 05:17





$("option:selected", $("#TipoRecorde")).text()

59
2017-08-16 17:56





$("#DropDownID").val()  sẽ cung cấp giá trị chỉ mục đã chọn.


54
2017-11-14 09:22



Không chính xác câu trả lời cho câu hỏi, nhưng lại hữu ích cho tôi. Câu hỏi muốn văn bản đã chọn. - Peter


Điều này làm việc cho tôi:

$('#yourdropdownid').find('option:selected').text();

jQuery phiên bản: 1.9.1


50
2017-09-25 07:36



Điều này làm việc cho tôi, bởi vì trên change sự kiện tôi có thể sử dụng $(this).find('option:selected').text() để nhận được văn bản. - Timo002
$(this).children(':selected').text() cũng sẽ hoạt động. @ Timo002 - Mr. Mak


Điều này làm việc cho tôi

$("#dropdownid").change(function() {
    alert($(this).find("option:selected").text());
});

Nếu phần tử được tạo động

$(document).on("change", "#dropdownid", function() {
    alert($(this).find("option:selected").text());
});

46
2017-08-14 11:12





Đối với văn bản của mục đã chọn, hãy sử dụng:

$('select[name="thegivenname"] option:selected').text();

Đối với giá trị của mục đã chọn, hãy sử dụng:

$('select[name="thegivenname"] option:selected').val();

40
2018-01-24 23:22





Nhiều cách khác nhau

1. $("#myselect option:selected").text();

2. $("#myselect :selected").text();

3. $("#myselect").children(":selected").text();

4. $("#myselect").find(":selected").text();

30
2017-08-03 19:39





$("#dropdownID").change(function(){
  alert($('option:selected', $(this)).text());
});

27
2018-02-01 05:55



đây là những gì, tôi đã mong đợi với $(this)  sau cuộc gọi ajax của tôi - Shantaram Tupe