⊗jqBsEM 30 of 113 menu

Trabalhando com o método each no jQuery

Quando temos um grupo de elementos obtidos com jQuery, só podemos fazer alterações neles para todos os elementos simultaneamente.

Por exemplo, se quisermos alterar o texto de todos os parágrafos encontrados - não conseguiremos torná-lo diferente para cada um.

Neste caso, o método especial each nos ajuda, permitindo aplicar uma função a todos os elementos de um conjunto jQuery. Dentro desta função, podemos distinguir os elementos e agir de forma diferente com cada um deles.

Essencialmente, each é um loop que pode iterar sobre todos os elementos encontrados. A referência ao elemento atual do loop estará em this.

Podemos simplesmente usar este this em JavaScript puro, como fizemos antes, por exemplo, assim - this.innerHTML - e exibir o conteúdo interno dos nossos elementos. Mas é melhor envolver this no cifrão do jQuery assim - $(this) - neste caso, poderemos aplicar a ele todos os métodos e cadeias do jQuery.

Vamos considerar o seguinte código HTML:

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

Neste exemplo, devemos obter todos os elementos com a classe www e exibir seu conteúdo. Como é feito: com $('.www') obtemos os elementos que precisamos, depois com each(test) aplicamos a função test a cada elemento obtido. Ela será aplicada primeiro ao primeiro parágrafo, depois ao segundo, ao terceiro e assim por diante.

Dentro da função, this irá apontar para o elemento ao qual a função test está sendo aplicada - primeiro será o primeiro elemento, depois o segundo, e assim por diante. Com uma construção como $(this), em vez de um this JavaScript comum, obteremos um elemento jQuery e aplicaremos a ele o método html, que obterá o texto do nosso elemento. Bem, e então ele simplesmente será exibido na tela:

/* Escrevemos o nome da função test sem aspas e (), porque precisamos do seu código, e não do resultado: */ $('.www').each(test); function test() { alert($(this).html()); }

Para resolver esta tarefa, também podemos usar funções anônimas - isso é feito com mais frequência:

$('.www').each(function() { alert($(this).html()); });

Também podemos passar para o método each uma função de callback com parâmetros.

Vamos no próximo exemplo adicionar no final de todos os li na página o seu número de ordem. Agora em nossa função anônima passaremos o índice do elemento e o próprio elemento:

$('li').each(function (index, elem) { $(elem).append(index); });

E agora, em vez de elem, usamos this:

$('li').each(function (index) { $(this).append(index); });

Altere o conteúdo de todos os li para o seu número de ordem.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar