Comment puis-je obtenir le texte sélectionné (pas la valeur sélectionnée) à partir d'une liste déroulante dans jQuery?
Comment puis-je obtenir le texte sélectionné (pas la valeur sélectionnée) à partir d'une liste déroulante dans jQuery?
Réponses:
$("#yourdropdownid option:selected").text();
$("#yourdropdownid").children("option").filter(":selected").text()
puisque is () renvoie un booléen indiquant si l'objet correspond au sélecteur ou non.
is("selected").text()
renvoie unTypeError: Object false has no method 'text'
$('select').children(':selected')
est le moyen le plus rapide: jsperf.com/get-selected-option-text
Essaye ça:
$("#myselect :selected").text();
Pour une liste déroulante ASP.NET, vous pouvez utiliser le sélecteur suivant:
$("[id*='MyDropDownId'] :selected")
("#ct0001yourdropdownid)
ID
sur votre contrôle, et sinon sur la base de l'index de l'endroit où elles se produisent dans le niveau actuel de l'arborescence, etc. )
Les réponses affichées ici, par exemple,
$('#yourdropdownid option:selected').text();
n'a pas fonctionné pour moi, mais cela a:
$('#yourdropdownid').find('option:selected').text();
Il s'agit peut-être d'une ancienne version de jQuery.
Si vous avez déjà la liste déroulante disponible dans une variable, voici ce qui fonctionne pour moi:
$("option:selected", myVar).text()
Les autres réponses à cette question m'ont aidé, mais finalement l' option de thread $ jQuery $ (this + "option: selected"). Attr ("rel") sélectionnée ne fonctionne pas dans IE a le plus aidé.
Mise à jour: correction du lien ci-dessus
Ça marche pour moi
$("#dropdownid").change(function() {
alert($(this).find("option:selected").text());
});
Si l'élément créé dynamiquement
$(document).on("change", "#dropdownid", function() {
alert($(this).find("option:selected").text());
});
Cela fonctionne pour moi:
$('#yourdropdownid').find('option:selected').text();
Version jQuery : 1.9.1
change
événement, je peux maintenant utiliser $(this).find('option:selected').text()
pour obtenir du texte.
$(this).children(':selected').text()
fonctionnerait également. @ Timo002
$("#dropdownID").change(function(){
alert($('option:selected', $(this)).text());
});
$(this)
après mon appel ajax
Utilisez ceci
const select = document.getElementById("yourSelectId");
const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;
Ensuite, vous obtenez la valeur et le texte sélectionnés dans selectedValue
et selectedText
.
var someName = "Test";
$("#<%= ddltest.ClientID %>").each(function () {
$('option', this).each(function () {
if ($(this).text().toLowerCase() == someName) {
$(this).attr('selected', 'selected')
};
});
});
Cela vous aidera à obtenir la bonne direction. Le code ci-dessus est entièrement testé si vous avez besoin d'aide supplémentaire, faites le moi savoir.
Pour ceux qui utilisent des listes SharePoint et ne veulent pas utiliser l'ID généré longtemps, cela fonctionnera:
var e = $('select[title="IntenalFieldName"] option:selected').text();
$("#selectID option:selected").text();
Au lieu de cela, #selectID
vous pouvez utiliser n'importe quel sélecteur jQuery, comme en .selectClass
utilisant class.
Comme mentionné dans la documentation ici .
Le sélecteur: selected fonctionne pour les éléments <option>. Cela ne fonctionne pas pour les cases à cocher ou les entrées radio; utiliser :checked
pour eux.
.text () Selon la documentation ici .
Obtenez le contenu textuel combiné de chaque élément dans l'ensemble des éléments correspondants, y compris leurs descendants.
Vous pouvez donc prendre le texte de n'importe quel élément HTML en utilisant la .text()
méthode.
Reportez-vous à la documentation pour une explication plus approfondie.
$("select[id=yourDropdownid] option:selected").text()
Cela fonctionne bien
Sélectionnez Texte et valeur sélectionnée dans la liste déroulante / sélectionnez l'événement de changement dans jQuery
$("#yourdropdownid").change(function() {
console.log($("option:selected", this).text()); //text
console.log($(this).val()); //value
})
Essayez simplement le code suivant.
var text= $('#yourslectbox').find(":selected").text();
il renvoie le texte de l'option sélectionnée.
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
var div = e.options[e.selectedIndex].text;
, et il n'affiche que le premier élément d'option. Comment afficher chaque élément?
ce qui suit a fonctionné pour moi:
$.trim($('#dropdownId option:selected').html())
Ce travail pour moi:
$("#city :selected").text();
J'utilise jQuery 1.10.2
En cas de fratrie
<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>
Essayer:
$var = jQuery("#dropdownid option:selected").val();
alert ($var);
Ou pour obtenir le texte de l'option, utilisez text()
:
$var = jQuery("#dropdownid option:selected").text();
alert ($var);
Plus d'informations: