Escrevi um código que basicamente seleciona todos os input type=text
elementos como este:
$('.sys input[type=text]').each(function () {}
Como faço para alterar para selecionar input[type=text]
ou select
?
javascript
jquery
Jack
fonte
fonte
context form
está usando ofind form
, ofind form
é mais eficiente do que ocontext form
(uma função de chamada evitada). Isso é válido para quase todos os seletores usados. Então, IMO ofind form
é mais eficiente do que onormal CSS selector
, porque ambas as partes do seletor são relativas ao nó raiz, onde nofind form
, apenas a.sys
parte é relativa a ele, entãoinput[type=text],select
é executado em um conjunto muito menor de elementos, então pode ser mais rápido (mas precisa ser verificado por testes)$
chamada é tão importante para o seu aplicativo, evite usar jQuery completamente :). Essa resposta tentou responder à pergunta de OP, se fosse uma questão de desempenho, essa resposta não estaria aqui em primeiro lugar. De qualquer forma, obrigado pelo comentário :), obrigado$
chamada, mas sobre todas as$
chamadas presentes em um aplicativo. IMO, quando você tem maneiras diferentes de fazer a mesma coisa, procuro sempre escolher aquela que funciona melhor bc.slow performance
===unhappy users
. Além disso, podemos tanto responder à pergunta de um OP com respostas múltiplas (como fez) e vantagens proporcionadas / inconveniente de cada um deles (como eu fiz no comentário). IMO, é importante notar porque todas as respostas são diferentes, fornecendo o mesmo resultado. Além disso, podemos escrever código JavaScript vanilla com desempenho lentoJavaScript
performance
$
, classifique seus divs especificamente e usedocument.getElemenById/ElementsByClassName
, em vez de passar pelo$
que faz muitas verificações / análise de string de seu seletor, jQuery não é famoso para sua biblioteca de desempenho. E eu, honestamente, não vi um app ficar lento por ter ligado$
demais, se você tiver um site com esse problema, por favor, me mostre, estou muito interessado :)EDIT: Na verdade, este código acima é equivalente ao seletor de filhos,
.sys > input[type=text]
se você quiser o select (.sys input[type=text]
) descendente, você precisa usar as opções fornecidas por @NiftyDude.Mais Informações:
jQuery.children()
fonte
chilren
vez dechildren
Se você tiver várias entradas como texto em um formulário ou tabela que precise iterar, eu fiz o seguinte:
O que eu fiz foi verificar cada entrada para ver se o tipo está definido como "texto", então ele pegará esse elemento e o armazenará na lista jQuery. Em seguida, iteraria essa lista. Você pode definir uma variável temporária para a iteração atual assim:
Isso definirá o item atual para a iteração atual de cada loop. Então você pode fazer o que quiser com a variável temp.
Espero que isso ajude alguém!
fonte
para loop:
fonte