Tudo bem, diga que tenho isso:
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
Como seria o seletor se eu quisesse obter a "Opção B" quando tiver o valor '2'?
Observe que isso não está perguntando como obter o valor de texto selecionado , mas apenas qualquer um deles, selecionado ou não, dependendo do atributo value. Eu tentei:
$("#list[value='2']").text();
Mas isto não está funcionando.
javascript
jquery
drop-down-menu
jquery-selectors
Paolo Bergantino
fonte
fonte
$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();
Respostas:
Ele está procurando um elemento com id
list
que tenha uma propriedadevalue
igual a2
.O que você quer é o
option
filho dolist
:fonte
$('#list option:selected').text()
$('#list').val()
.trim()
depois,.text()
pois algum navegador pode adicionar alguns espaços antes e depois do texto que são invisíveis para o usuário, mas que podem levar a valores errados$("#list option[value='2']").text().trim()
Se você deseja obter a opção com o valor 2, use
Se você deseja obter a opção atualmente selecionada, use
fonte
Isso funcionou perfeitamente para mim, eu estava procurando uma maneira de enviar dois valores diferentes com opções geradas pelo MySQL, e o seguinte é genérico e dinâmico:
$(this).find("option:selected").text();
Como mencionado em um dos comentários. Com isso, fui capaz de criar uma função dinâmica que funciona com todas as minhas caixas de seleção e desejo obter os dois valores, o valor da opção e o texto.
Alguns dias atrás, notei que, ao atualizar o jQuery de 1.6 para 1.9 do site, usei esse código, este parou de funcionar ... provavelmente havia um conflito com outro trecho de código ... de qualquer maneira, a solução era remover a opção do chamada find ():
Essa foi a minha solução ... use-a apenas se você tiver algum problema após atualizar seu jQuery.
fonte
Com base no HTML original publicado por Paolo, criei o seguinte.
Foi testado para funcionar no Internet Explorer e Firefox.
fonte
para vários valores selecionados no
#list
elemento.fonte
Se houver apenas uma tag de seleção na página, você poderá especificar a seleção dentro do id 'list'
Para obter o texto selecionado
fonte
Tente o seguinte:
O motivo pelo qual seu snippet original não estava funcionando é porque suas
OPTION
tags são filhos da suaSELECT
tag, que possui oid
list
.fonte
Esta é uma pergunta antiga que não foi atualizada há algum tempo. A maneira correta de fazer isso agora seria usar
Eu espero que isso ajude :-)
fonte
Eu queria obter o rótulo selecionado. Isso funcionou para mim no jQuery 1.5.1.
fonte
fonte
optgroup
tag como filha suaselect
e a opção selecionada está nelaoptgroup
. uso$("#list option:selected").text();
que funciona mesmo neste casodeixe um espaço após o seletor de identificação.
fonte
Você pode obter o texto da opção selecionada usando a função
.text();
você pode chamar a função assim:
fonte
Enquanto "faz um loop" através de elementos selecionados criados dinamicamente com um .each (function () ...):
$("option:selected").text();
e$(this + " option:selected").text()
fazia não retornou o texto da opção selecionada - em vez disso, era nulo.Mas a solução de Peter Mortensen funcionou:
Não sei por que a maneira usual não é bem-sucedida em um
.each()
(provavelmente meu próprio erro), mas obrigado, Peter. Eu sei que essa não era a pergunta original, mas estou mencionando "para iniciantes que chegam pelo Google".Eu teria começado,
$('#list option:selected").each()
exceto que eu precisava pegar coisas do elemento select também.fonte
Usar:
fonte
Eu estava procurando obter val pelo nome do campo interno em vez do ID e vim do google para este post que ajudou, mas não encontrou a solução que eu precisava, mas obtive a solução e aqui está:
Portanto, isso pode ajudar alguém que procura o valor selecionado com o nome interno do campo, em vez de usar o ID longo nas listas do SharePoint:
fonte
Eu precisava dessa resposta, pois estava lidando com um objeto convertido dinamicamente e os outros métodos aqui não pareciam funcionar:
É claro que isso usa o objeto DOM em vez de analisar seu HTML com nodeValue, childNodes, etc.
fonte
Uma dica: você pode usar o código abaixo se seu valor for dinâmico:
Ou (melhor estilo)
Conforme mencionado no jQuery, obtenha o texto da tag de opção específica e coloque a variável dinâmica no valor
fonte
Como solução alternativa, você também pode usar uma parte de contexto do seletor jQuery para encontrar
<option>
elementosvalue="2"
dentro da lista suspensa:fonte
Eu queria uma versão dinâmica para selecionar vários que exibisse o que está selecionado à direita (gostaria de ter lido e visto
$(this).find
... mais cedo):fonte
Você pode obter uma das seguintes maneiras
fonte