¿Cómo puedo obtener el texto seleccionado (no el valor seleccionado) de una lista desplegable en jQuery?
¿Cómo puedo obtener el texto seleccionado (no el valor seleccionado) de una lista desplegable en jQuery?
Respuestas:
$("#yourdropdownid option:selected").text();
$("#yourdropdownid").children("option").filter(":selected").text()
dado que is () devuelve un valor booleano de si el objeto coincide con el selector o no.
is("selected").text()
devuelve unTypeError: Object false has no method 'text'
$('select').children(':selected')
es la forma más rápida: jsperf.com/get-selected-option-text
Prueba esto:
$("#myselect :selected").text();
Para un menú desplegable de ASP.NET puede usar el siguiente selector:
$("[id*='MyDropDownId'] :selected")
("#ct0001yourdropdownid)
ID
control, y si no, entonces se basan en el índice de dónde ocurren en el nivel actual del árbol, etc. )
Las respuestas publicadas aquí, por ejemplo,
$('#yourdropdownid option:selected').text();
no funcionó para mí, pero esto sí:
$('#yourdropdownid').find('option:selected').text();
Es posiblemente una versión anterior de jQuery.
Si ya tiene la lista desplegable disponible en una variable, esto es lo que funciona para mí:
$("option:selected", myVar).text()
Las otras respuestas a esta pregunta me ayudaron, pero en última instancia, el hilo del foro jQuery $ (esta + "opción: seleccionada"). La opción attr ("rel") seleccionada no funciona en IE fue la que más ayudó.
Actualización: reparó el enlace de arriba
Esto funciona para mi
$("#dropdownid").change(function() {
alert($(this).find("option:selected").text());
});
Si el elemento creado dinámicamente
$(document).on("change", "#dropdownid", function() {
alert($(this).find("option:selected").text());
});
Esto funciona para mi:
$('#yourdropdownid').find('option:selected').text();
Versión de jQuery : 1.9.1
change
evento ahora puedo usar $(this).find('option:selected').text()
para obtener texto.
$(this).children(':selected').text()
También funcionaría. @ Timo002
$("#dropdownID").change(function(){
alert($('option:selected', $(this)).text());
});
$(this)
después de mi llamada ajax
Utilizar este
const select = document.getElementById("yourSelectId");
const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;
Luego obtienes el valor seleccionado y el texto dentro selectedValue
y selectedText
.
var someName = "Test";
$("#<%= ddltest.ClientID %>").each(function () {
$('option', this).each(function () {
if ($(this).text().toLowerCase() == someName) {
$(this).attr('selected', 'selected')
};
});
});
Eso te ayudará a obtener la dirección correcta. El código anterior se prueba completamente si necesita más ayuda, hágamelo saber.
Para aquellos que usan listas de SharePoint y no quieren usar la identificación generada durante mucho tiempo, esto funcionará:
var e = $('select[title="IntenalFieldName"] option:selected').text();
$("#selectID option:selected").text();
En lugar de #selectID
usar cualquier selector jQuery, como .selectClass
usar class.
Como se menciona en la documentación aquí .
El selector seleccionado funciona para elementos <option>. No funciona para casillas de verificación o entradas de radio; utilizar :checked
para ellos.
.text () Según la documentación aquí .
Obtenga el contenido de texto combinado de cada elemento en el conjunto de elementos coincidentes, incluidos sus descendientes.
Por lo tanto, puede tomar texto de cualquier elemento HTML utilizando el .text()
método
Consulte la documentación para una explicación más profunda.
$("select[id=yourDropdownid] option:selected").text()
Esto funciona bien
Seleccione Texto y valor seleccionado en el menú desplegable / seleccione evento de cambio en jQuery
$("#yourdropdownid").change(function() {
console.log($("option:selected", this).text()); //text
console.log($(this).val()); //value
})
Simplemente intente el siguiente código.
var text= $('#yourslectbox').find(":selected").text();
devuelve el texto de la opción seleccionada.
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
var div = e.options[e.selectedIndex].text;
, y solo muestra el primer elemento de opción. ¿Cómo hacer que cada elemento se muestre?
lo siguiente funcionó para mí:
$.trim($('#dropdownId option:selected').html())
Este trabajo para mi:
$("#city :selected").text();
Estoy usando jQuery 1.10.2
En caso de hermanos
<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>
Tratar:
$var = jQuery("#dropdownid option:selected").val();
alert ($var);
O para obtener el texto de la opción, use text()
:
$var = jQuery("#dropdownid option:selected").text();
alert ($var);
Más información:
$("#dropdown").find(":selected").text();
$("#dropdown :selected").text();
$("#dropdown option:selected").text();
$("#dropdown").children(":selected").text();