jQuery итерация - метод map()
Пример
Создание списка всех значений в форме:
$("p").append($("input"));.map(function() { return $(this).val(); ).get().join(", ") );
Определение и использование
map() передает каждый элемент функции, соответствующей текущему набору соответствий, и создает новый объект jQuery, содержащий возвращаемые значения.
Грамматика
.map(callback(index,domElement))
Параметры | Описание |
---|---|
callback(index,domElement) | Функция объекта, вызываемая для каждого элемента текущего набора. |
Подробное описание
Поскольку возвращаемое значение является массивом,封装анным jQuery, используйте get() для обработки возвращаемого объекта, чтобы получить базовый массив.
.map() метод особенно полезен для получения или установки значений набора элементов. Давайте подумаем о форме с рядом флажков:
<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>
Мы можем получить список ID флажков, разделенных запятыми:
$(':checkbox').map(function() { return this.id; ).get().join(',');
Результат этого вызова является строкой: "two,four,six,eight".
Внутри функции callback, this ссылается на текущий элемент DOM каждого итерации. Функция может возвращать отдельные данные или массив данных, которые нужно вставить в результат集合. Если возвращается массив, элементы массива будут вставлены в набор. Если функция возвращает null или undefined, ни один элемент не будет вставлен.