Se você conhece o Índice, Valor ou Texto. Além disso, se você não tiver um ID para uma referência direta.
Isso , isso e isso são respostas úteis.
Exemplo de marcação
<div class="selDiv">
<select class="opts">
<option selected value="DEFAULT">Default</option>
<option value="SEL1">Selection 1</option>
<option value="SEL2">Selection 2</option>
</select>
</div>
$("#my_select").val("the_new_value").change();
... de soRespostas:
Um seletor para obter o elemento de opção do meio por valor é
Para um índice:
Para um texto conhecido:
EDIT : Como comentado acima, o OP pode ter sido depois de alterar o item selecionado do menu suspenso. Na versão 1.6 e superior, o método prop () é recomendado:
Nas versões mais antigas:
EDIT2 : após o comentário de Ryan. Uma correspondência na "Seleção 10" pode ser indesejada. Não encontrei nenhum seletor para corresponder ao texto completo, mas um filtro funciona:
EDIT3 : Tenha cuidado,
$(e).text()
pois ele pode conter uma nova linha fazendo com que a comparação falhe. Isso acontece quando as opções são implicitamente fechadas (sem</option>
tag):Se você simplesmente usar
e.text
qualquer espaço em branco extra, como a nova linha à direita, será removida, tornando a comparação mais robusta.fonte
Nenhum dos métodos acima forneceu a solução que eu precisava, então achei que forneceria o que funcionava para mim.
fonte
prop
e nãoattr
..attr
está correto. "selected" é um atributo da <opção> w3.org/TR/html5/forms.html#attr-option-selectedprop
em preferência aattr
. Isso economiza a necessidade de procurar todas as propriedades no w3.org para ver se é apenas um atributo ou implementado com ações de backup.Você pode apenas usar o
val()
método:fonte
the_value
. .val não é uma função seletora / filtro! É um acessador de propriedade e, passando-o, essa sequência SETS o valor. Tentei recuperar meu voto positivo, mas era tarde demais depois que percebi isso nos testes.Por valor, o que funcionou para mim com o jQuery 1.7 foi o código abaixo, tente o seguinte:
fonte
.change()
foi necessário. Eu tive um exemplo em que estava alternando miniaturas com base em um SELECT. Quando carreguei um tema personalizado, ele deveria selecionar "Tema personalizado" na lista de opções. A.prop()
chamada funcionou, mas sem a.change()
imagem em miniatura à direita da minha seleção nunca foi atualizada.prop
valor booleano gera a mesma saída. por exemplo.prop('selected', true)
Existem várias maneiras de fazer isso, mas a abordagem mais limpa foi perdida entre as principais respostas e muitos argumentos sobre
val()
. Também alguns métodos foram alterados a partir do jQuery 1.6, portanto, isso precisa de uma atualização.Para os exemplos a seguir, assumirei que a variável
$select
é um objeto jQuery apontando para a<select>
tag desejada , por exemplo, através do seguinte:Nota 1 - use val () para correspondências de valores:
Para a correspondência de valores, usar
val()
é muito mais simples do que usar um seletor de atributos: https://jsfiddle.net/yz7tu49b/6/A versão setter de
.val()
é implementada emselect
tags, configurando aselected
propriedade de uma correspondênciaoption
com a mesmavalue
, portanto funciona bem em todos os navegadores modernos.Nota 2 - use prop ('selecionado', verdadeiro):
Se você deseja definir o estado selecionado de uma opção diretamente, pode usar
prop
(nãoattr
) umboolean
parâmetro (em vez do valor do textoselected
):por exemplo, https://jsfiddle.net/yz7tu49b/
Nota 3 - permita valores desconhecidos:
Se você usar
val()
para selecionar um<option>
, mas o val não for correspondido (pode ocorrer dependendo da origem dos valores), "nada" será selecionado e$select.val()
retornaránull
.Portanto, para o exemplo mostrado e por uma questão de robustez, você pode usar algo como este https://jsfiddle.net/1250Ldqn/ :
Nota 4 - correspondência exata do texto:
Se você deseja corresponder pelo texto exato, pode usar a
filter
função with. por exemplo, https://jsfiddle.net/yz7tu49b/2/ :embora se você tiver um espaço em branco extra, poderá adicionar um recorte à verificação, como em
Nota 5 - correspondência por índice
Se você deseja corresponder por índice, apenas indexe os filhos do select, por exemplo, https://jsfiddle.net/yz7tu49b/3/
Embora eu costumo evitar propriedades diretas do DOM em favor do jQuery hoje em dia, para código à prova de futuro, isso também pode ser feito como https://jsfiddle.net/yz7tu49b/5/ :
Nota 6 - use change () para disparar a nova seleção
Em todos os casos acima, o evento de alteração não é acionado. Isso ocorre por design, para que você não termine com eventos de mudança recursivos.
Para gerar o evento de mudança, se necessário, basta adicionar uma chamada ao objeto
.change()
jQueryselect
. por exemplo, o primeiro exemplo mais simples se torna https://jsfiddle.net/yz7tu49b/7/Também existem muitas outras maneiras de encontrar os elementos usando seletores de atributos, como
[value="SEL2"]
, mas você deve lembrar que os seletores de atributos são relativamente lentos em comparação com todas essas outras opções.fonte
Você pode nomear o select e usar isso:
Ele deve selecionar a opção desejada.
fonte
fonte
Respondendo minha própria pergunta para documentação. Tenho certeza de que existem outras maneiras de fazer isso, mas isso funciona e esse código é testado.
fonte
Exatamente funcionará, tente os métodos abaixo
fonte
Usando jquery-2.1.4 , encontrei a seguinte resposta para trabalhar para mim:
Se você tiver um valor de sequência, tente o seguinte:
Outros exemplos não funcionaram para mim, por isso estou adicionando esta resposta.
Encontrei a resposta original em: https://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu
fonte
Para definir o valor selecionado, com o acionamento selecionado:
Para definir a opção de um escopo:
Esse código usa o seletor para descobrir o objeto de seleção com condição e, em seguida, altere o atributo selecionado por
attr()
.Além disso, recomendo adicionar um
change()
evento após definir o atributo paraselected
, ao fazer isso, o código estará próximo de alterar a seleção por usuário.fonte
Eu uso isso, quando eu sei o índice da lista.
Isso permite que a lista seja alterada e acione o evento de alteração. O ": nésimo (n)" está contando no índice 0
fonte
Eu vou com:-
fonte
Tente isto
você apenas usa o ID do campo de seleção em vez de #id (por exemplo, # select_name)
em vez do valor da opção, use seu valor de opção de seleção
fonte
Para o Jquery escolhido se você enviar o atributo para funcionar e precisar atualizar a opção de seleção
fonte
fonte
O
$('select').val('the_value');
parece a solução certa e se você tem as linhas da tabela de dados, em seguida:fonte
se você não quiser usar o jQuery, poderá usar o código abaixo:
fonte
Obrigado pela pergunta. Espero que este pedaço de código funcione para você.
fonte
ou
fonte