2435

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

4

35 回答 35

3929
$("#yourdropdownid option:selected").text();
于 2009-10-29T12:05:38.997 回答
278

试试这个:

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

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

$("[id*='MyDropDownId'] :selected")
于 2009-10-29T12:04:28.220 回答
229

例如,此处发布的答案

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

对我不起作用,但这确实:

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

它可能是 jQuery 的旧版本。

于 2012-03-19T11:41:05.053 回答
113

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

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

这个问题的其他答案对我有帮助,但最终选择的 jQuery 论坛线程$(this + "option:selected").attr("rel") 选项在 IE 中不起作用

更新:修复了上面的链接

于 2012-02-04T05:17:05.993 回答
75

这对我有用

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

如果元素动态创建

$(document).on("change", "#dropdownid", function() {
    alert($(this).find("option:selected").text());
});
于 2015-08-14T11:12:39.160 回答
68
$("option:selected", $("#TipoRecorde")).text()
于 2011-08-16T17:56:44.587 回答
55

这对我有用:

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

jQuery版本:1.9.1

于 2013-09-25T07:36:47.823 回答
54

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

于 2011-11-14T09:22:21.090 回答
44

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

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

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

$('select[name="thegivenname"] option:selected').val();
于 2013-01-24T23:22:46.073 回答
36

用这个

const select = document.getElementById("yourSelectId");

const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;   

selectedValue然后你在and中得到你选择的值和文本selectedText

于 2015-05-14T14:21:49.810 回答
35

各种方式

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

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

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

4. $("#myselect").find(":selected").text();
于 2014-08-03T19:39:08.500 回答
32
$("#dropdownID").change(function(){
  alert($('option:selected', $(this)).text());
});
于 2014-02-01T05:55:09.040 回答
30
var someName = "Test";

$("#<%= ddltest.ClientID %>").each(function () {
    $('option', this).each(function () {
        if ($(this).text().toLowerCase() == someName) {
            $(this).attr('selected', 'selected')
        };
    });
});

这将帮助您找到正确的方向。如果您需要进一步的帮助,请告诉我,上面的代码已经过全面测试。

于 2010-10-07T10:09:55.793 回答
20

对于那些使用SharePoint列表并且不想使用长生成的 id 的人,这将起作用:

var e = $('select[title="IntenalFieldName"] option:selected').text();
于 2013-11-05T21:38:51.170 回答
17
 $("#selectID option:selected").text();

#selectID您可以使用任何 jQuery 选择器代替,例如.selectClass使用 class.

如文档here中所述。

:selected 选择器适用于 <option> 元素。它不适用于复选框或无线电输入;为他们使用:checked

.text()根据此处的文档。

获取匹配元素集中每个元素的组合文本内容,包括它们的后代。

因此,您可以使用该.text()方法从任何 HTML 元素中获取文本。

请参阅文档以获得更深入的解释。

于 2014-01-30T14:29:42.697 回答
16
$("select[id=yourDropdownid] option:selected").text()

这工作正常

于 2013-04-23T10:04:21.323 回答
13
$('#id').find('option:selected').text();
于 2015-04-11T09:39:05.860 回答
13

为了获得选定的价值使用

$('#dropDownId').val();

并获取选定的项目文本使用这一行:

$("#dropDownId option:selected").text();
于 2016-01-23T09:07:31.777 回答
12

在 jQuery 中的下拉列表/选择更改事件上选择文本和选定值

$("#yourdropdownid").change(function() {
    console.log($("option:selected", this).text()); //text
    console.log($(this).val()); //value
})
于 2015-11-19T05:36:36.123 回答
12

尝试:

$var = jQuery("#dropdownid option:selected").val();
   alert ($var);

或者要获取选项的文本,请使用text()

$var = jQuery("#dropdownid option:selected").text();
   alert ($var);

更多信息:

于 2017-03-09T07:03:10.100 回答
11
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
于 2017-01-04T12:53:48.533 回答
11

只需尝试以下代码。

var text= $('#yourslectbox').find(":selected").text();

它返回所选选项的文本。

于 2018-11-13T06:03:43.583 回答
9

采用:

('#yourdropdownid').find(':selected').text();
于 2014-07-31T15:11:23.877 回答
9

这段代码对我有用。

$("#yourdropdownid").children("option").filter(":selected").text();
于 2020-02-13T16:17:09.003 回答
8

以下对我有用:

$.trim($('#dropdownId option:selected').html())
于 2015-09-17T05:13:23.083 回答
7

在兄弟姐妹的情况下

<a class="uibutton confirm addClient" href="javascript:void(0);">ADD Client</a>
<input type="text" placeholder="Enter client name" style="margin: 5px;float: right" class="clientsearch large" />
<select class="mychzn-select clientList">
  <option value="">Select Client name....</option>
  <option value="1">abc</option>
</select>


 /*jQuery*/
 $(this).siblings('select').children(':selected').text()
于 2014-12-05T06:33:34.873 回答
7

这对我有用:

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

我正在使用 jQuery 1.10.2

于 2015-07-09T02:00:43.920 回答
6

$(function () {
  alert('.val() = ' + $('#selectnumber').val() + '  AND  html() = ' + $('#selectnumber option:selected').html() + '  AND .text() = ' + $('#selectnumber option:selected').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title></title>

  </head>
  <body>
    <form id="form1" runat="server">
      <div>
        <select id="selectnumber">
          <option value="1">one</option>
          <option value="2">two</option>
          <option value="3">three</option>
          <option value="4">four</option>
        </select>

      </div>
    </form>
  </body>
</html>

点击查看输出屏幕

于 2016-08-09T17:01:49.927 回答
5
$("#dropdown").find(":selected").text();


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

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

$("#dropdown").children(":selected").text();
于 2019-12-17T06:50:30.827 回答
4

如果要将结果作为列表,请使用:

x=[];
$("#list_id").children(':selected').each(function(){x.push($(this).text());})
于 2017-01-18T21:56:31.360 回答
3

尝试

dropdown.selectedOptions[0].text

function read() {
  console.log( dropdown.selectedOptions[0].text );
}
<select id="dropdown">
  <option value="1">First</option>
  <option value="2">Second</option>
</select>
<button onclick="read()">read</button>

于 2020-01-17T17:10:47.733 回答
2

对于多选:

$("#yourdropdownid :selected").map(function(i, v) { return $.trim($(v).text()); }
于 2018-03-15T22:21:12.293 回答
2
$("#dropdownid option:selected").text();

如果您使用 asp.net 并编写

<Asp:dropdownlist id="ddl" runat="Server" />

那么你应该使用

$('#<%=ddl.Clientid%> option:selected').text();
于 2018-05-21T11:01:50.793 回答
0

只需添加以下行

$(this).prop('selected', true);

将 .att 替换为 .prop 它适用于所有浏览器。

于 2019-01-12T11:12:41.420 回答
0
$("#dropdownid").change(function(el) {
    console.log(el.value);
});

或者你可以使用这个

$("#dropdownid").change(function() {
    console.log($(this).val());
});
于 2021-10-20T14:48:08.233 回答