Existe uma versão que não diferencia maiúsculas de minúsculas do seletor : contém jQuery ou devo fazer o trabalho manualmente fazendo um loop sobre todos os elementos e comparando seu .text () à minha string?
145
Existe uma versão que não diferencia maiúsculas de minúsculas do seletor : contém jQuery ou devo fazer o trabalho manualmente fazendo um loop sobre todos os elementos e comparando seu .text () à minha string?
Respostas:
O que acabei fazendo no jQuery 1.2 é:
Isso estenderá o jquery para ter um: Contém seletor que não diferencia maiúsculas de minúsculas, o seletor: contém permanece inalterado.
Edit: Para jQuery 1.3 (obrigado @ user95227) e mais tarde você precisa
Editar: aparentemente acessando o DOM diretamente usando
ao invés de
Na expressão anterior, acelera consideravelmente; portanto, tente por sua conta e risco se a velocidade é um problema. (veja a pergunta de @John )
Última edição: Para o jQuery 1.8, deve ser:
fonte
Para torná-lo opcionalmente sem distinção entre maiúsculas e minúsculas: http://bugs.jquery.com/ticket/278
então use em
:containsi
vez de:contains
fonte
A partir do jQuery 1.3, esse método está obsoleto. Para que isso funcione, ele precisa ser definido como uma função:
fonte
Se alguém (como eu) está interessado, o que a e m [3] significam em Contém a definição.
CHAVE / LEGENDA: Parâmetros disponibilizados pelo jQuery para uso nas definições do seletor:
r = matriz jQuery de elementos sendo examinados. (por exemplo: r.length = Número de elementos)
i = índice do elemento atualmente em análise, na matriz r .
a = elemento atualmente em análise. A instrução seletor deve retornar true para incluí-la em seus resultados correspondentes.
m [2] = nodeName ou * que estamos procurando (à esquerda de dois pontos).
m [3] = param passado no seletor: (param). Normalmente, um número de índice, como em : enésimo tipo (5) , ou uma sequência de caracteres, como em : cor (azul) .
fonte
No jQuery 1.8, você precisará usar
fonte
Uma variação que parece ter um desempenho um pouco mais rápido e que também permite expressões regulares é:
Isso não diferencia apenas maiúsculas de minúsculas, mas permite pesquisas poderosas como:
$("p:containsCI('\\bup\\b')")
(Corresponde a "Up" ou "up", mas não "upper", "wakeup" etc.)$("p:containsCI('(?:Red|Blue) state')")
(Corresponde a "estado vermelho" ou "estado azul", mas não a "estado ativo" etc.)$("p:containsCI('^\\s*Stocks?')")
(Corresponde a "material" ou "material", mas apenas no início do parágrafo (ignorando qualquer espaço em branco à esquerda).)fonte
Pode se atrasar ... mas,
Eu preferiria ir por esse caminho ..
Dessa forma, você NÃO adulterará o NATIVE '.contains' do jQuery ... Você pode precisar do padrão mais tarde ... se adulterado, poderá voltar ao stackOverFlow ...
fonte
O código de atualização funciona muito bem na versão 1.3, mas "contém" deve estar em minúsculas na primeira letra, diferente do exemplo anterior.
fonte
:contains
e:Contains
trabalhassem simultaneamente.Consulte abaixo para usar ": contains" para encontrar o texto ignorando a distinção entre maiúsculas e minúsculas de um código HTML,
Você também pode usar este link para localizar o código de ignição de maiúsculas e minúsculas com base na sua versão jquery, Make jQuery: contém maiúsculas e minúsculas
fonte
Uma versão mais rápida usando expressões regulares.
fonte
Eu tive um problema semelhante com o seguinte não está funcionando ...
Isso funciona e sem a necessidade de uma extensão
Isso funciona também, mas provavelmente cai na categoria "looping manual" ....
fonte
Nova variável, dou o nome subString e coloco a string que você deseja pesquisar em alguns elementos do texto. Em seguida, usando o seletor Jquery, selecione os elementos que você precisa, como meu exemplo
$("elementsYouNeed")
e filtro.filter()
. No.filter()
ele irá comparar cada elemento$("elementsYouNeed")
com a função.Na função que estou usando
.toLowerCase()
para o texto do elemento, também subString, que pode evitar a distinção entre maiúsculas e minúsculas e verificar se há uma subString nela. Depois disso, o.filter()
método constrói um novo objeto jQuery a partir de um subconjunto dos elementos correspondentes.Agora você pode obter os elementos de correspondência no matchObjects e fazer o que quiser.
fonte