Como faço para definir o índice de uma lista suspensa no jQuery se a maneira como estou encontrando o controle é a seguinte:
$("*[id$='" + originalId + "']")
Faço isso dessa maneira porque estou criando controles dinamicamente e como os IDs são alterados ao usar Web Forms, achei isso como uma solução alternativa para encontrar alguns controles. Mas uma vez que eu tenho o objeto jQuery, não sei como definir o índice selecionado como 0 (zero).
#an-id
é mais rápido, mas*[id$=ends-with]
é o caminho mais lento, isso é o que o "atribuir uma classe para o elemento" é o significadoAcabei de descobrir isso, funciona para mim e eu pessoalmente acho mais fácil ler.
Isso definirá o índice real, exatamente como a opção número 3 da resposta do gnarf.
Isso não costumava funcionar, mas funciona agora ... veja o bug: http://dev.jquery.com/ticket/1474
Termo aditivo
Conforme recomendado nos comentários, use:
$("select#elem").prop('selectedIndex', 0);
fonte
.prop('selectedIndex', 0);
independentemente de se.attr()
obras ou não :)Estou escrevendo esta resposta em 2015 e, por algum motivo (provavelmente versões mais antigas do jQuery), nenhuma das outras respostas funcionou para mim. Quero dizer, eles mudam o índice selecionado, mas na verdade não reflete no menu suspenso real.
Aqui está outra maneira de alterar o índice e, na verdade, fazê-lo refletir no menu suspenso:
fonte
prop('selectedIndex', ...);
(testado com Chrome e Firefox) alterar a seleção.change
evento no menu suspenso, que também pode ser uma solução / solução útil para as pessoas que estão mudando a seleção ligandoprop('selectedIndex', ...)
, em vez deval(...)
. Talvez o problema seja que você está ouvindo umchange
evento e é isso que não estava funcionando para você? É verdade que simplesmente mudar oprop
erty não vai disparar nenhum evento ... #estou a usar
para selecionar o elemento de opção que possui value = 'xyz'
fonte
Código JQuery:
Código Jsp:
fonte
Você deseja pegar o valor da primeira opção no elemento de seleção.
fonte
Para selecionar a segunda opção
Aqui nós adicionamos o `trigger ('change') para fazer o evento disparar.
fonte
irá defini-lo como 0
fonte
Selecione a quarta opção
exemplo em jsfiddle
fonte