Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Какая разница между понятием “селектор” и “фильтр” в jQuery?

#jquery


Привет. 

Не понимаю разницу между понятием "селектор" и "фильтр". В некоторых учебных  материалах
этапы обучения джейквери называются, например, 1. Выборка 2. Фильтры. Например, пишут,
что :first - это фильтр. По-моему, это просто псевдоэлемент, который придумали при
написании джейквери. 

Не понимаю правил комбинирования селекторов. Какие-то есть правила, как написать
сложный селектор? Можно ли использовать несколько псевдоэлементов сразу, например,
p.class:first-child:first:visible...
    


Ответы

Ответ 1



Стандарты W3C Селекторы - это критерии для выборки определенного элемента со страницы, набор селекторов и их комбинирование называется шаблоном. Есть множество селекторов - это селекторы атрибутов, селекторы классов, псевдо-классы, псевдо-элементы и т.д. W3C говорит: Эти шаблоны, называемые селекторами, могут изменяться в диапазоне от простых имен элементов до сложных текстовых структур. Если определенный элемент удовлетворяет всем критериям, устанавливаемым шаблоном, то соответствующий селектор сопоставляется данному элементу. Упрощенная терминология Часто для упрощения, при написании шаблона на выборку, говорят так, что есть селектор, которым называют выборку по элементам (.class например) и есть фильтры, последним, для удобства, называют совокупность псевдо-классов или псевдо-элементов: $(селектор:фильтры). Селекторы - строчные выражения, с помощью которых задаются условия поиска элементов DOM на странице (.className, #id, ..) Фильтры - это строчные выражения с помощью которых можно уточнить результат других селекторов (:first, :last, ...) Комбинирование Комбинирование нескольких фильтров возможно и ваш пример будет работать, попробуем перевести его на русский: выбрать элементы p с классом "class" которые являются первыми в своих родительских элементах, взять первый подобный элемент, после чего проверить что он виден на странице и вернуть его, если это так. Более адекватный пример: $('#results:odd:has('img')'). В данном случае мы выбираем все нечетные элементы с id="results", которые содержат элементы img, то есть изображения. Полезная информация Читаем вот здесь про существующие селекторы, вот здесь про их комбинирование.

Ответ 2



Термин "фильтр" не совсем корректен применительно к селектору. Но отфильтровать список можно селектором. То есть селектор - это определитель множества: #wow p > .class:first-child А фильтр (или фильтрация) - это операция отсеивания множества, которая может быть сделана по селектору: $('div').filter('.red:visible'); Можно ли использовать несколько псевдоэлементов сразу, например, p.class:first-child:first:visible... А вот тут терминология неверная - не псевдоэлемент, а псевдокласс. Можно, только :first и :visible - это не css, это псевдоклассы, которые работают только в выборках jQuery . Псевдоэлементы - это только :after и :before .

Ответ 3



Фильтр может использоватся когда надо найти из опредленного множества какойто элемент. Селектор может использоваться вместе с фильтром, с помощью селектора можно задать множество и профильтровать то что надо из этого множества.

Комментариев нет:

Отправить комментарий