Создание новой выборки из имеющейся при помощи метода map
Метод map
дает широкие возможности для использования объекта jQuery
как средства для создания другого объекта. В метод map
добавляется функция. Эта функция вызывается для каждого элемента в исходном объекте jQuery
, а HTMLElement
объекты, которые возвращаются данной функцией, включаются в получившийся объект jQuery
. В листинге 6-7 показано использование метода map
.
Листинг 6-7: Использование метода map
...
<script type="text/javascript">
$(document).ready(function () {
$('div.dcell').map(function (index, elem) {
return elem.getElementsByTagName("img")[0];
}).css("border", "thick solid red");
$('div.dcell').map(function (index, elem) {
return $(elem).children()[1];
}).css("border", "thick solid blue");
});
</script>
...
В этом листинге я два раза применял метод map
. Первый раз используется DOM API, тут возвращается первый элемент img
, содержащийся в каждом элементе; а во второй раз используется jQuery, а именно, возвращается первый элемент в объекте jQuery
, возвращенный "дочерним" методом. (Более подробно я расскажу об этом дальше в этой главе, но по названию видно, что он возвращает дочерние узлы каждого элемента в объекте jQuery
).
Совет
Можно вернуть только один элемент за каждый вызов функции. Если вы хотите получить несколько итоговых элементов для каждого исходного элемента, нужно совместить методы
each
иadd
, о чем написано в главе 8.