Фильтрация выбранных элементов
Материал из JQuery
.filter()
Фильтрует набор выбранных элементов. Метод имеет два варианта использования:
.filter(selector):jQuery1.0
Фильтрует набор элементов, оставляя только те, которые удовлетворяют селектору selector.
.filter(function(index)):jQuery1.0
Фильтрует набор элементов c помощью заданной функции. Эта функция вызывается отдельно, для каждого из выбранных элементов. Если она возвращает true, то текущий элемент будет включен в конечный результат. Сами элементы доступны в функции, в переменной this, а их порядковые номера в наборе — в переменной index.
Примеры использования:
| $("div").filter(".lBlock") | вернет div-элементы с классом lBlock. |
| $("div").filter(filterDivs) | вернет div-элементы, "одобренные" функцией filterDivs. |
В действии
Найдем и отметим элементы списка, которые имеют один элемент заключенный в тег <strong> (жирное начертание):
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
ul{list-style-type:none; padding-left:20px}
li{padding:2px}
</style>
</head>
<body>
<ul>
<li>
<strong>элемент</strong> номер 1
</li>
<li>элемент номер 2</li>
<li>элемент номер 3</li>
<li>
<strong>элемент</strong> номер <strong>4</strong>
</li>
<li>элемент номер 5</li>
<li>элемент номер 6</li>
</ul>
<script>
$('li').filter(function(index){
return $('strong', this).length == 1;
}).css('background-color', 'red');
</script>
</body>
</html>
