题 使用jQuery从下拉列表(选择框)中获取所选文本


如何从jQuery的下拉列表中获取所选文本(而不是选定的值)?


1989
2017-10-29 12:02


起源


只是我的两分钱:“ASP”下拉并不特别;它只是很好的旧HTML。 :-) - dotslash
可以参考这篇文章: javascriptstutorial.com/blog/... - Dilip Kumar Yadav
对于vanilla javascript方式,请参阅 stackoverflow.com/a/5947/32453 - rogerdpack


答案:


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

3320
2017-10-29 12:05



我认为这应该是 $("#yourdropdownid").children("option").filter(":selected").text() 因为is()返回对象是否与选择器匹配的布尔值。 - MHollis
我的第二个评论是关于()返回一个boolen;或者,使用以下小改动:$('#yourdowndownid')。children(“option:selected”)。text(); - scubbo
@ DT3测试过 is("selected").text() 返回一个 TypeError: Object false has no method 'text' - ianace
@ DT3,他对速度并没有错。 以下是一些快速统计数据 在一个实际大小的下拉列表(8左右)上运行。 - Adam Tomat
$('select').children(':selected') 是最快的方式: jsperf.com/get-selected-option-text - Simon


尝试这个:

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

对于ASP.NET下拉列表,您可以使用以下选择器:

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

236
2017-10-29 12:04



这里的ASP.NET版本是唯一适用于我的asp.net的Jquery,因此我赞同那个。这个: ('$(“#yourdropdownid选项:已选中”)。text();' 没有在使用母版页的asp.net页面中工作。 - netfed
它不起作用,因为asp.net母版页在选择器前面抛出随机字符。它在技术上寻找类似的东西 ("#ct0001yourdropdownid) - CSharper
javascriptstutorial.com/blog/... - Dilip Kumar Yadav
@CSharper - 我想说ASP.NET 抛出随机字符 相当误导。它们根本不是随意的,它们是结构性的并且遵循严格的规则(基于诸如是否放置一个等等 ID 在你的控制,如果没有,那么根据它们在树的当前级别出现的位置,等) - freefaller
您好如何在Table行/单元格中执行此操作,如何知道表中的哪个Dropdown,尤其是在ASP MVC 5中 - transformer


例如,这里发布的答案,

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

不适合我,但这样做:

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

它可能是jQuery的旧版本。


185
2018-03-19 11:41



另一个答案适用于最新版本的Jquery。 - Doomsknight
不要讨厌这个答案。使用“find”关键字对我来说很有用。我来自一个完全不同的背景。 - ROFLwTIME
你根本不需要选项部分,只需使用$('#yourdowndownid:selected')。text();会很好的 - Dss
jquery-1.10.2.min,这个适合我,而不是其他人。 - kubilay


如果您已经在变量中提供了下拉列表,这对我有用:

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

关于这个问题的其他答案对我有帮助,但最终还是jQuery论坛帖子 $(此+“选项:已选中”)。选择的attr(“rel”)选项在IE中不起作用 帮助最多。

更新:修复了上述链接


93
2018-02-04 05:17





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

59
2017-08-16 17:56





$("#DropDownID").val()  将给出所选的索引值。


54
2017-11-14 09:22



不完全是问题的答案,但对我有用。问题想要选定的文本。 - Peter


这对我有用:

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

jQuery的 版本:1.9.1


50
2017-09-25 07:36



这对我有用,因为在 change 我现在可以使用的活动 $(this).find('option:selected').text() 得到文字。 - Timo002
$(this).children(':selected').text() 也会奏效。 @ Timo002 - Mr. Mak


这对我有用

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

如果元素是动态创建的

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

46
2017-08-14 11:12





对于所选项目的文本,请使用:

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

对于所选项目的值,请使用:

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

40
2018-01-24 23:22