How can I get the selected text (not the selected value) from a drop-down list in jQuery?
-
13Just my two cents: An "ASP" drop-down is no special; it's just good old HTML. :-)– ankush981Jun 4, 2015 at 6:20
-
One can refer this article: javascriptstutorial.com/blog/…– Dilip Kumar YadavOct 18, 2016 at 12:02
-
for vanilla javascript way, see stackoverflow.com/a/5947/32453– rogerdpackJan 18, 2017 at 19:27
-
Just $(this).prop('selected', true); replaced .att to .prop it worked for all browsers– Shahid Hussain AbbasiJan 12, 2019 at 11:13
-
$("#yourdropdownid option:selected").text();– Ali NajafZadehAug 3, 2021 at 16:57
35 Answers
$("#yourdropdownid option:selected").text();
-
218I think this should be
$("#yourdropdownid").children("option").filter(":selected").text()
since is() returns a boolean of whether the object matches the selector or not.– MHollisMay 18, 2012 at 14:04 -
45I second the comment about is() returning a boolen; alternatively, use the following small alteration: $('#yourdropdownid').children("option:selected").text();– scubboJun 12, 2012 at 14:56
-
104
$('select').children(':selected')
is the fastest way: jsperf.com/get-selected-option-text– SeimenApr 24, 2013 at 13:51 -
And if have scape caracteres like
\n \t
you can add.trim()
getting like this:$("#yourdropdownid option:selected").text().trim();
– LeffaApr 22, 2022 at 20:39
Try this:
$("#myselect :selected").text();
For an ASP.NET dropdown you can use the following selector:
$("[id*='MyDropDownId'] :selected")
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.
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
-
``` <script> $(document).ready(function() { $("#submit").click(function() { var value = $("#myselection option:selected"); alert(value.text()); }); }); </script> ``` <br> Link: geeksforgeeks.org/… Jul 22, 2022 at 19:47
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());
});
$("#DropDownID").val()
will give the selected index value.
-
40Not exactly the answer to the question, but was useful for me. The question wants the selected text.– PeterNov 28, 2011 at 14:50
-
@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' Feb 14, 2023 at 9:11
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();
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
.
Various ways
1. $("#myselect option:selected").text();
2. $("#myselect :selected").text();
3. $("#myselect").children(":selected").text();
4. $("#myselect").find(":selected").text();
$("#dropdownID").change(function(){
alert($('option:selected', $(this)).text());
});
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.
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();
This code worked for me.
$("#yourdropdownid").children("option").filter(":selected").text();
-
Works too! And if have scape caracteres like
\n \t
you can add.trim()
getting like this:$("#yourdropdownid").children("option").filter(":selected").text().trim();
– LeffaApr 22, 2022 at 20:39
$("#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.
$("#dropdown").find(":selected").text();
$("#dropdown :selected").text();
$("#dropdown option:selected").text();
$("#dropdown").children(":selected").text();
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:
Simply try the following code.
var text= $('#yourslectbox').find(":selected").text();
it returns the text of the selected option.
For getting selected value use
$('#dropDownId').val();
and for getting selected item text use this line:
$("#dropDownId option:selected").text();
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
})
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
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()
$(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>
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>
-
1