Eu preciso verificar se a <select>
tem uma opção cujo texto é igual a um valor específico.
Por exemplo, se houver um <option value="123">abc</option>
, eu estaria procurando "abc".
Existe um seletor para fazer isso?
Estou procurando algo semelhante, $('#select option[value="123"]');
mas para o texto.
has
resposta no SLaks é útil, mas o ponto na resposta do Floyds também é bom ... Não sei o que aceitar.Respostas:
Isso pode ajudar:
Violino de demonstração
Isso daria a você a opção de texto
B
e não aqueles que contêm textoB
. Espero que isto ajudePara versões recentes do jQuery, o acima não funciona. Conforme comentado pelo dilema abaixo, é isso que funciona para o jQuery 1.9.1:
Violino atualizado
fonte
Você pode usar o
:contains()
seletor para selecionar elementos que contenham texto específico.Por exemplo:
Para verificar se um determinado
<select>
elemento tem essa opção, use o.has()
método :Para encontrar todos os
<select>
s que contêm essa opção, use o:has()
seletor :fonte
:contains
não é definitivo agora, é?123abcdef
?Nenhuma das sugestões anteriores funcionou para mim no jQuery 1.7.2 porque estou tentando definir o índice selecionado da lista com base no valor de uma caixa de texto, e alguns valores de texto estão contidos em várias opções. Acabei usando o seguinte:
fonte
contains
completamente pode realmente acelerar as coisas.$(this).parent().val($(this).val());
você provavelmente poderia fazer as duas coisas, mas para mim, definir apenas o paival()
fez o truque.Eu enfrentei o mesmo problema abaixo é o código de trabalho:
Demonstração: http://jsfiddle.net/YRBrp/83/
fonte
Isso funcionou para mim:
$("#test").find("option:contains('abc')");
fonte
$("#testselect").find("option:contains('option-text')").attr('value');
Dessa forma, você pode usar um evento como.click()
para alterar uma configuração.Este é o melhor método para selecionar texto na lista suspensa.
fonte
this is your selected text plus more
.Eu tentei algumas dessas coisas até conseguir trabalhar no Firefox e no IE. Isto é o que eu vim com.
outra maneira de escrevê-lo de maneira mais legível:
Pseudo-código:
fonte
"#my-Select" + " option"
? Por que não apenas"#my-Select option"
?Use as seguintes
fonte
Isso funcionará no jQuery 1.6 (observe dois pontos antes do colchete de abertura), mas falha nas versões mais recentes (1.10 no momento).
fonte
$("#mySelect option").filter(function() { return this.text == "abc"; });
vai funcionar com versões mais recentes do jQuery .. Ou, provavelmente, alguma outra maneira que você preferir usar ..Para jquery versão 1.10.2 abaixo funcionou para mim
fonte
Esse trabalho pra mim
fonte
Isso funciona para mim:
A
result
variável retornará o índice do valor do texto correspondente. Agora vou configurá-lo usando seu índice:fonte
Você itera pelas opções ou insere o mesmo texto em outro atributo da opção e seleciona com isso.
fonte
Isso também irá funcionar.
$ ('# test'). find ("selecione a opção: contém ('B')"). filter (": selected");
fonte
ABC
.Conforme descrito nesta resposta , você pode criar facilmente seu próprio seletor para o hasText. Isso permite que você encontre a opção com
$('#test').find('option:hastText("B")').val();
Aqui está o método hasText que eu adicionei:
fonte
Isso funciona para mim
Obrigado por todas as mensagens.
fonte