Два очень похожих метода библиотеки jQuery, служащих для фильтрации выборки - метод
и метод 1
.has()
.1
.hasClass()
И действительно, оба этих метода похожи между собой. Чтобы было понятно, лучше сразу перейду к примерам.
Метод .has()
Метод
фильтрует элементы, имеющие в своем составе указанные в 1
.has()
селекторы.1
.has()
Простой пример:
То есть: всем элементам
, имеющим в качестве потомков (в своем составе) элемент 1
li
, присвоить класс 1
a
.1
.active
На лицо, как бы это сказать, обратная фильтрация - справа налево. Обычно все методы библиотеки jQuery работают слева направо.
Этот метод чем-то похож на метод
. В качестве примера рассмотрим такой вариант:1
.parent()
… что читается таким образом: всем элементам
, являющимся родителями элементов 1
li
, присвоить класс 1
a
.1
.active
Напомню, что метод
работает именно с селекторами и имеет такой синтаксис:1
.has()
Метод .hasClass()
Метод
очень похож по принципу действия на предыдущий метод 1
.hasClass()
- но это только кажущееся впечатление.1
has()
Во-первых, как понятно из имени метода
, что он работает с классами, а не селекторами.1
.hasClass()
То есть, синтаксис метода
таков:1
.hasClass()
Во-вторых, метод
возвращает логическое 1
.hasClass()
или 1
true
, в отличие от метода 1
false
, который возвращает массив объектов, доступных для дальнейшей обработки.1
.has()
Простой пример:
… что читается таким образом: если элементы
имеют класс 1
li
, то всем элементам 1
.active
, являющимся потомками элементов 1
a
, присвоить класс 1
li
; иначе всем элементам 1
.activeLink
присвоить класс 1
a
.1
.inactiveLink
Стоит обратить внимание, что в случае метода
имеет место быть обычный способ фильтрации элементов - слева направо; выборка сужается по мере появления новых условий.1
.hasClass()
Вот такая картина получается, с двумя этими методами -
и 1
.has()
.1
.hasClass
На этом все.