Como posso obter o texto selecionado (não o valor selecionado) em uma lista suspensa no jQuery?
Como posso obter o texto selecionado (não o valor selecionado) em uma lista suspensa no jQuery?
Respostas:
$("#yourdropdownid option:selected").text();
$("#yourdropdownid").children("option").filter(":selected").text()
porque is () retorna um valor booleano se o objeto corresponde ao seletor ou não.
is("selected").text()
retorna aTypeError: Object false has no method 'text'
$('select').children(':selected')
é a maneira mais rápida: jsperf.com/get-selected-option-text
Tente o seguinte:
$("#myselect :selected").text();
Para um menu suspenso do ASP.NET, você pode usar o seguinte seletor:
$("[id*='MyDropDownId'] :selected")
("#ct0001yourdropdownid)
ID
em seu controle e, se não for, com base no índice de onde elas ocorrem no nível atual da árvore etc.) )
As respostas postadas aqui, por exemplo,
$('#yourdropdownid option:selected').text();
não funcionou para mim, mas isso funcionou:
$('#yourdropdownid').find('option:selected').text();
É possivelmente uma versão mais antiga do jQuery.
Se você já tem a lista suspensa disponível em uma variável, é isso que funciona para mim:
$("option:selected", myVar).text()
As outras respostas sobre essa pergunta me ajudaram, mas, em última análise, a opção do thread do fórum do jQuery $ (esta + "opção: selecionada"). Attr ("rel") selecionada não está mais funcionando no IE .
Atualização: corrigido o link acima
Isso funciona para mim
$("#dropdownid").change(function() {
alert($(this).find("option:selected").text());
});
Se o elemento criado dinamicamente
$(document).on("change", "#dropdownid", function() {
alert($(this).find("option:selected").text());
});
change
evento agora posso usar $(this).find('option:selected').text()
para obter texto.
$(this).children(':selected').text()
também funcionaria. @ Timo002
$("#dropdownID").change(function(){
alert($('option:selected', $(this)).text());
});
$(this)
depois da minha chamada ajax
Usa isto
const select = document.getElementById("yourSelectId");
const selectedIndex = select.selectedIndex;
const selectedValue = select.value;
const selectedText = select.options[selectedIndex].text;
Então você obtém o valor e o texto selecionados dentro selectedValue
e selectedText
.
var someName = "Test";
$("#<%= ddltest.ClientID %>").each(function () {
$('option', this).each(function () {
if ($(this).text().toLowerCase() == someName) {
$(this).attr('selected', 'selected')
};
});
});
Isso irá ajudá-lo a obter a direção certa. O código acima é totalmente testado se você precisar de mais ajuda, me avise.
Para aqueles que estão usando listas do SharePoint e não desejam usar o ID gerado por muito tempo, isso funcionará:
var e = $('select[title="IntenalFieldName"] option:selected').text();
$("#selectID option:selected").text();
Em vez de #selectID
você pode usar qualquer seletor de jQuery, como .selectClass
usar classe.
Conforme mencionado na documentação aqui .
O seletor: selecionado funciona para elementos <opção>. Não funciona para caixas de seleção ou entradas de rádio; use :checked
para eles.
.text () Conforme a documentação aqui .
Obtenha o conteúdo do texto combinado de cada elemento no conjunto de elementos correspondentes, incluindo seus descendentes.
Assim, você pode pegar o texto de qualquer elemento HTML usando o .text()
método
Consulte a documentação para uma explicação mais profunda.
$("select[id=yourDropdownid] option:selected").text()
Isso funciona bem
Selecione Texto e valor selecionado no menu suspenso / selecione evento de alteração no jQuery
$("#yourdropdownid").change(function() {
console.log($("option:selected", this).text()); //text
console.log($(this).val()); //value
})
Simplesmente tente o seguinte código.
var text= $('#yourslectbox').find(":selected").text();
retorna o texto da opção selecionada.
var e = document.getElementById("dropDownId");
var div = e.options[e.selectedIndex].text;
var div = e.options[e.selectedIndex].text;
e ele exibe apenas o primeiro item da opção. Como exibir cada item?
o seguinte funcionou para mim:
$.trim($('#dropdownId option:selected').html())
Este trabalho para mim:
$("#city :selected").text();
Estou usando o jQuery 1.10.2
No caso de irmão
<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>
Tentar:
$var = jQuery("#dropdownid option:selected").val();
alert ($var);
Ou, para obter o texto da opção, use text()
:
$var = jQuery("#dropdownid option:selected").text();
alert ($var);
Mais informações: