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