Книга: Выразительный JavaScript
Селекторы запросов
Селекторы запросов
В этой книге мы не будем часто использовать таблицы стилей. Понимание их работы критично для программирования в браузере, но подробное разъяснение всех их свойств заняло бы 2-3 книги. Главная причина знакомства с ними и с синтаксисом селекторов (записей, определяющих, к каким элементам относятся правила) – мы можем использовать тот же эффективный мини-язык для поиска элементов DOM.
Метод querySelectorAll
, существующий и у объекта document
, и у элементов-узлов, принимает строку селектора и возвращает массивоподобный объект, содержащий все элементы, подходящие под него.
<p>Люблю грозу в начале
<span>мая</span></p>
<p>Когда весенний первый гром</p>
<p>Как бы <span>резвяся
<span>и играя</span></span></p>
<p>Грохочет в небе голубом.</p>
<script>
function count(selector) {
return document.querySelectorAll(selector).length;
}
console.log(count("p")); // Все элементы <p>
// ? 4
console.log(count(".animal")); // Класс animal
// ? 2
console.log(count("p .animal")); // Класс animal внутри <p>
// ? 2
console.log(count("p > .animal")); // Прямой потомок <p>
// ? 1
</script>
В отличие от методов вроде getElementsByTagName
, возвращаемый querySelectorAll
объект не интерактивный. Он не изменится, если вы измените документ.
Метод querySelector
(без All
) работает сходным образом. Он нужен, если вам необходим один конкретный элемент. Он вернёт только первое совпадение, или null
, если совпадений нет.
- 19.8. Селекторы и методы выбора в библиотеке jQuery
- 19.8.1.2. Комбинированные селекторы
- 3. Бинарные операции на языке структурированных запросов
- 19.8.1. Селекторы jQuery
- Улучшенный оптимизатор запросов
- Асинхронный сервер и отмена выполняющихся запросов
- 1. Оператор Select – базовый оператор языка структурированных запросов
- 2. Унарные операции на языке структурированных запросов
- 4. Использование подзапросов
- Обработка запросов с помощью PHP
- Лекция 11. История запросов
- 6.3. Импорт запросов на перенос