jQuery.grep()

Функция jQuery.grep() находит все элементы массива, удовлетворяющие заданному фильтру. Функция может работать не только с массивами, но и с массивоподобными объектами со свойством length.

В качестве фильтра используется переданная вторым аргументом функция. Она запускается для каждого элемента массива отдельно. Если функция возвращает значение true, тогда текущий элемент включается в результирующий массив. Исходный массив остаётся без изменений.

Варианты использования

jQuery.grep(массив, функция[, инвертировать]) => Array
Отфильтровывает массив переданной функцией. Функция может принимать два аргумента: элемент массива и его индекс.
Необязательный третий аргумент позволяет инвертировать работу фильтра. Если он имеет значение true, тогда в результирующий массив попадут элементы, для которых фильтрующая функция вернёт значение false.

Примеры

<html>
<head>
  <title>Функции библиотеки jQuery</title>
  <script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
  <ul>
    <li>Элемент 1</li>
    <li>Элемент 2</li>
    <li>Элемент 3</li>
    <li>Элемент 4</li>
  </ul>
</body>
</html>
 
<script>
var list_items = document.getElementsByTagName('li');

/* Выбрать все элементы, кроме первых двух */
var items_1 = $.grep(list_items, function(elem, index) {
  return (index > 1);
});
$(items_1).css('color', 'red');

/* Выбрать первые два элемента можно, инвертировав предыдущий фильтр */
var items_2 = $.grep(list_items, function(elem, index) {
  return (index > 1);
}, true);
$(items_2).css('color', 'green');
</script>
  • Элемент 1
  • Элемент 2
  • Элемент 3
  • Элемент 4