jQuery iteração - método map()

Exemplo

Construir uma lista de todos os valores do formulário:

$("p").append($("input")).map(function() {
  return $(this).val();
).get().join(", ") );

Experimente pessoalmente

Definição e uso

map() passa cada elemento por uma função para o conjunto correspondente atual, gerando um novo objeto jQuery contendo os valores de retorno.

Sintaxe

.map(callback(index,domElement))
Parâmetros Descrição
callback(index,domElement) Objeto de função chamado para cada elemento do conjunto atual.

Explicação detalhada

Como o valor de retorno é um array encapsulado pelo jQuery, use get() para manipular o objeto de retorno para obter o array básico.

.map() método é especialmente útil para obter ou definir valores de conjuntos de elementos. Pense na seguinte forma de um formulário com uma série de checkboxes:

<form method="post" action="">
  <fieldset>
    <div>
      <label for="two">2</label>
      <input type="checkbox" value="2" id="two" name="number[]">
    </div>
    <div>
      <label for="four">4</label>
      <input type="checkbox" value="4" id="four" name="number[]">
    </div>
    <div>
      <label for="six">6</label>
      <input type="checkbox" value="6" id="six" name="number[]">
    </div>
    <div>
      <label for="eight">8</label>
      <input type="checkbox" value="8" id="eight" name="number[]">
    </div>
  </fieldset>
</form>

Podemos obter uma lista separada por vírgulas dos IDs dos checkboxes:

$(':checkbox').map(function() {
  return this.id;
).get().join(',');

Experimente pessoalmente

O resultado da chamada atual é a string: "two,four,six,eight".

Dentro da função callback, o this se refere ao elemento DOM atual da iteração. A função pode retornar itens de dados individuais, ou arrays de itens a serem inseridos no conjunto de resultados. Se o retorno for um array, os elementos dentro do array serão inseridos no conjunto. Se a função retornar null ou undefined, nenhum elemento será inserido.