Навігація по DOM
$('ul li').length; - кількість знайдених елементів.
Батьківські та дочірні елементи
$('p').parent(); - знаходить безпосередніх батьків елементів.
$('p').parents(); - знаходить всіх батьків елементів.
$('p').children(); - знаходить безпосередні дочірні елементи.
$('ul').find(selector); - знаходить всі дочірні елементи.
Можна задати селектор щоб знайти тільки потрібні елементи серед всіх:
$('p').parent('article');
$('p').parents('.wrapper');
$('ul').children('.active');
Сусідні елементи
$('ul li.active').prev(); - вибирає попереднього сусіда.
$('ul li.active').next(); - вибирає наступного сусіда.
$('ul li.active').prevAll(); - вибирає всіх попередніх сусідів.
$('ul li.active').nextAll(); - вибирає всіх наступних сусідів.
Знову ж таки, вищезазначені методи можуть приймати в себе аргумент - селектор, що відфільтрує зайві елементи:
$('p').prev('img');
$('section').next('section'); // wtf?
$('ul li.active').prevAll('.contacts');
$('ul li.active').nextAll('.contacts');
Робота з набором
$('ul li').first(); - повертає перший елемент з набору.
$('ul li').last(); - повертає останній елемент з набору.
$('ul li').first('.active');
$('ul li').last('.active');
У jQuery є декілька спеціальних селекторів, що покращують читабельність коду та спрощують його:
$('ul li:first');
$('ul li:last');
$('ul li:even');
$('ul li:odd');
// ну і не забувайте про CSS-псевдокласи:
$('button:disabled');
$('input[type="checkbox"]:checked');
Увага: jQuery, як і JS, не бачать і не розуміють CSS-псевдоелементи :before, :after. Наступний код не буде працювати:
$('span:before').css('color', 'red');
// вирішити це можна приблизно таким костилем:
$('head').append('<style>.jq-red:before{color:red;}</style>');
$('span').addClass('jq-red');
$('ul li').get(4); - повертає 5-й JS-елемент зі знайдених (починаючи з 0).
$('ul li')[4]; - аналогічно.
$('ul li').eq(4); - повертає 5-й jQuery-елемент зі знайдених (починаючи з 0). По суті - повертається jQuery-масив-обгортка довжиною 1 елемент.
$('ul li').each(fun); - виконує дію з кожним знайденим елементом.
$('p').each(function(){
console.log($(this).text());
});
$('p').each(function(i, e){
console.log(i, $(e).text());
});
Зверніть увагу: в функцію передаються чисті JS-елементи, а не jQuery-обгортки.
Фільтрація елементів
$('ul li').filter(':even').css('color', 'red'); - відфільтровує елементи, в даному випадку залишає парні.
$('ul li').not('.active'); - видаляє зі знайденого набору елементів ті елементи, що відповідають селектору.
$('p').add(...); - добавляє елементи до набора (аргумент - елементи або селектор).
let $li = $('li');
$('p').add($li).add('img.gallery').addClass('js-elem');
Перевірки
$('li').index('.active'); - повертає номер елемента в наборі, (індекс елемента LI.active серед всіх LI).
$('li').has('ul'); - вибирає тільки ті елементи, які містять в собі елементи, що підходять під селектор в аргументі метода (вибрати всі LI в яких всередині є UL).
$('p').is(selector); - перевірка чи елемент підходить до селектора:
$('li').each(function(){
if ($(this).is('.active')) { ... }
});