Get selected text from a drop-down list (select box) using jQuery

Asked 2023-09-20 20:29:18 View 326,405

How can I get the selected text (not the selected value) from a drop-down list in jQuery?

Answers

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

Answered   2023-09-20 20:29:18

  • I think this should be $("#yourdropdownid").children("option").filter(":selected").text() since is() returns a boolean of whether the object matches the selector or not. - anyone
  • I second the comment about is() returning a boolen; alternatively, use the following small alteration: $('#yourdropdownid').children("option:selected").text(); - anyone
  • $('select').children(':selected') is the fastest way: jsperf.com/get-selected-option-text - anyone
  • And if have scape caracteres like \n \t you can add .trim() getting like this: $("#yourdropdownid option:selected").text().trim(); - anyone

Try this:

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

For an ASP.NET dropdown you can use the following selector:

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

Answered   2023-09-20 20:29:18

The answers posted here, for example,

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

didn't work for me, but this did:

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

It is possibly an older version of jQuery.

Answered   2023-09-20 20:29:18

If you already have the dropdownlist available in a variable, this is what works for me:

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

The other answers on this question helped me, but ultimately the jQuery forum thread $(this + "option:selected").attr("rel") option selected is not working in IE helped the most.

Update: fixed the above link

Answered   2023-09-20 20:29:18

  • ``` <script> $(document).ready(function() { $("#submit").click(function() { var value = $("#myselection option:selected"); alert(value.text()); }); }); </script> ``` <br> Link: geeksforgeeks.org/… - anyone

This works for me

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

If the element created dynamically

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

Answered   2023-09-20 20:29:18

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

Answered   2023-09-20 20:29:18

This works for me:

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

jQuery version: 1.9.1

Answered   2023-09-20 20:29:18

$("#DropDownID").val() will give the selected index value.

Answered   2023-09-20 20:29:18

  • Not exactly the answer to the question, but was useful for me. The question wants the selected text. - anyone
  • @Neeraj, thank you for the answer. I discovered that val() != text() and in case when you have more then one value you will get something like.... '\n\tBYELORUSSIAN\n\tCATALAN\n\tCHINESESIMPLIFIED\n\tCHINESETRADITIONAL\n\tCROATIAN\n\tCZECH\n\tDANISH\n\tDUTCH\n\tESPERANTO\n\tESTONIAN\n\tFINNISH\n\tFRENCH\n\tGALICIAN\n\tGERMA' - anyone

For the text of the selected item, use:

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

For the value of the selected item, use:

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

Answered   2023-09-20 20:29:18

Use this

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

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

Then you get your selected value and text inside selectedValue and selectedText.

Answered   2023-09-20 20:29:18

Various ways

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

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

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

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

Answered   2023-09-20 20:29:18

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

Answered   2023-09-20 20:29:18

var someName = "Test";

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

That will help you to get right direction. Above code is fully tested if you need further help let me know.

Answered   2023-09-20 20:29:18

For those who are using SharePoint lists and don't want to use the long generated id, this will work:

var e = $('select[title="IntenalFieldName"] option:selected').text();

Answered   2023-09-20 20:29:18

This code worked for me.

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

Answered   2023-09-20 20:29:18

  • Works too! And if have scape caracteres like \n \t you can add .trim() getting like this: $("#yourdropdownid").children("option").filter(":selected").text().trim(); - anyone
 $("#selectID option:selected").text();

Instead of #selectID you can use any jQuery selector, like .selectClass using class.

As mentioned in the documentation here.

The :selected selector works for <option> elements. It does not work for checkboxes or radio inputs; use :checked for them.

.text() As per the documentation here.

Get the combined text contents of each element in the set of matched elements, including their descendants.

So you can take text from any HTML element using the .text() method.

Refer the documentation for a deeper explanation.

Answered   2023-09-20 20:29:18

$("select[id=yourDropdownid] option:selected").text()

This works fine

Answered   2023-09-20 20:29:18

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

Answered   2023-09-20 20:29:18

For getting selected value use

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

and for getting selected item text use this line:

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

Answered   2023-09-20 20:29:18

Select Text and selected value on dropdown/select change event in jQuery

$("#yourdropdownid").change(function() {
    console.log($("option:selected", this).text()); //text
    console.log($(this).val()); //value
})

Answered   2023-09-20 20:29:18

Try:

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

Or to get the text of the option, use text():

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

More Info:

Answered   2023-09-20 20:29:18

Simply try the following code.

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

it returns the text of the selected option.

Answered   2023-09-20 20:29:18

var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;

Answered   2023-09-20 20:29:18

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


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

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

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

Answered   2023-09-20 20:29:18

Use:

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

Answered   2023-09-20 20:29:18

the following worked for me:

$.trim($('#dropdownId option:selected').html())

Answered   2023-09-20 20:29:18

This work for me:

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

I'm using jQuery 1.10.2

Answered   2023-09-20 20:29:18

In sibling case

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

Answered   2023-09-20 20:29:18

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

Click to see OutPut Screen

Answered   2023-09-20 20:29:18

Try

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>

Answered   2023-09-20 20:29:18

  • Thanks for providing a pure-JS approach. - anyone