Перейти к содержимому

3. Селекторы

Иллюстрация к уроку Селекторы — это основа jQuery. Они позволяют находить элементы на странице.

$(selector)
$('div') // Все <div>
$('.classname') // Все с классом .classname
$('#id') // Элемент с id="id"
$('div.class') // Div с классом .class
$('div, p, span') // Множественный выбор
$('p') // Все параграфы
$('h1') // Все заголовки h1
$('button') // Все кнопки
$('.warning') // Все с классом warning
$('.btn.primary') // Элементы с обоими классами
$('#header') // Элемент с id="header"
$('#main-nav') // id="main-nav"
$('ul > li') // Прямые дочерние li внутри ul
$('div p') // Все p внутри div (любой вложенности)
$('.container > *') // Все прямые дети .container
$('h2 + p') // p сразу после h2
$('h2 ~ p') // Все p после h2 на том же уровне
$('[type]') // С любым атрибутом type
$('[type="text"]') // type="text"
$('[type!="submit"]') // type НЕ равен submit
$('[href^="https"]') // href начинается с https
$('[href$=".pdf"]') // href заканчивается на .pdf
$('[title*="jquery"]') // title содержит jquery
$(':checked') // Отмеченные чекбоксы/радио
$(':selected') // Выбранные <option>
$(':disabled') // Отключенные элементы
$(':enabled') // Активные элементы
$(':focus') // Элемент в фокусе
$(':empty') // Пустые элементы
$('li:first') // Первый li
$('li:last') // Последний li
$('li:eq(2)') // li с индексом 2 (третий)
$('li:gt(1)') // li с индексом больше 1
$('li:lt(3)') // li с индексом меньше 3
$('li:even') // Четные li (0, 2, 4...)
$('li:odd') // Нечетные li (1, 3, 5...)
$('div.container > p:first-child')
$('input[type="text"]:not(.readonly)')
$('ul li:nth-child(odd)')
jQueryVanilla JS
$('.class')document.querySelectorAll('.class')
$('#id')document.getElementById('id')
$('div')document.getElementsByTagName('div')
$('.a, .b')document.querySelectorAll('.a, .b')
$('#id') // Самый быстрый
$('tag') // Быстро
$('.class') // Медленнее
$(':hidden') // Медленно
$('[attr*="value"]') // Медленно
$(':not(selector)') // Медленно
// Кеширование селектора
const $buttons = $('.btn');
$buttons.addClass('active');
$buttons.on('click', handler);
// Контекст поиска
$('.item', '#container'); // Ищем только внутри #container
// Повторный поиск
$('.btn').addClass('active');
$('.btn').on('click', handler); // Ищем заново!
// Слишком сложный селектор
$('body > div.container > ul.list > li.item:first-child > a')

Попробуй разные селекторы: