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(", ") );
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(',');
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.