filter

« Обратно к списку traversing-функций

filter( выражение )

Удаляет все элементы, которые не соответствуют указанному выражению, из набора совпавших элементов.
Этот метод используется для ограничения результатов поиска.
Для указания нескольких выражений следует использовать запятую в качестве разделителя (например, filter(».class1, .class2″)).
Аргументы:

выражение Выражение
Выражение, которое передается в качестве аргумента функции filter.
Примеры:
Изменяет цвет фона всех элементов div и затем рисует границу вокруг некоторых из них.
    $("div").css("background", "#c8ebcc")
            .filter(".middle")
            .css("border-color", "red");
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){

    $("div").css("background", "#c8ebcc")
            .filter(".middle")
            .css("border-color", "red");

  });
  </script>

  <style>
  div { width:60px; height:60px; margin:5px; float:left;
        border:2px white solid;}
  </style>
</head>
<body>
  <div></div>
  <div class="middle"></div>

  <div class="middle"></div>
  <div class="middle"></div>
  <div class="middle"></div>
  <div></div>

</body>
</html>
Выделяет все параграфы и удаляет те, которые не имеют класса «selected».
$("p").filter(".selected")
Выделяет все параграфы и удаляет первый из найденных, а также те, которые не имеют класса «selected» .
$("p").filter(".selected, :first")
Name Type

filter( функция )

Удаляет все элементы, которые не удовлетворяют требованиям функции, из набора совпавших элементов.
Функция вызывается в контексте каждого элемента (также как и функция $.each). Если возвращает false, тогда элемент удаляется, если что-нибудь другое — элемент не удаляется.
Аргументы:
функция Функция
Функция, которая передается в качестве аргумента функции filter.

function callback(indexInJQueryObject) {
  var keepItBoolean = true;

  this; // dom element

  return keepItBoolean;
}
Примеры:
Изменяет цвет фона всех элементов div и затем рисует границу вокруг двух из них.
    $("div").css("background", "#b4b0da")
            .filter(function (index) {
                  return index == 1 || $(this).attr("id") == "fourth";
                })
            .css("border", "3px double red");
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script>
  $(document).ready(function(){

    $("div").css("background", "#b4b0da")
            .filter(function (index) {
                  return index == 1 || $(this).attr("id") == "fourth";
                })
            .css("border", "3px double red");

  });
  </script>

  <style>
  div { width:60px; height:60px; margin:5px; float:left;
        border:3px white solid; }
  </style>
</head>
<body>
  <div id="first"></div>
  <div id="second"></div>

  <div id="third"></div>
  <div id="fourth"></div>
  <div id="fifth"></div>
  <div id="sixth"></div>

</body>
</html>
Удаляет все элементы, которые имеют дочерний элемент ol.
$("div").filter(function(index) {
  return $("ol", this).length == 0;
});
Name Type