Our Blog

Выборка элементов jQuery

Достаточно часто встает вопрос как выбрать тот или иной элемент в DOM’е, и данный пост будет сплошь посвящен селекторам в jQuery, возможно большинство из них Вы видели в различных источниках, но собрать их воедино все же стоит…

Итак, Выборка элементов jQuery

Выбор элементов по Id либо ClassName аналогично используемому в CSS

1.$('#sidebar');    // выбор элемента с id = sidebar
2.$('.post');       // выбор элементов с class = post
3.$('div#sidebar'); // выбор элемента div с id = sidebar
4.$('div.post');    // выбор элементов div с class = post

Примечание: используйте валидные имена классов и id
Бродим по иерархии объектов в DOM’е

Простой выбор потомков:

1.$('div span');            // выбор всех span элементов в элементах div
2.Аналогичный результат так же можно получить используя следующую конструкцию:   
3.$('div').find('span');    // выбор всех span элементов в элементах div
4.Выбор только непосредственных потомков 
5.$('div > span');          // выбор всех span элементов в элементах div, где span является прямым потомком div'a

Как же лучше поступить, что работает быстрее? Надо бы протестировать…

Так же селекторы можно группировать:

1.$('div, span');          // выбор всех div и span элементов

Поиск по соседям:

1.$('span + img');         // выбор всех img элементов перед которыми идут span элементы
2.$('span ~ img');         // выбор всех img элементов после первого элемента span
3.$('#banner').prev();     // выбор предыдущего элемента от найденого
4.$('#banner').next();     // выбор следующего элемента от найденого

Выбор всех элементов, всех предков, всех потомков

1.$('*');                // выбор всех элементов
2.$('p > *');            // выбор всех потомков элементов p
3.$('p').children();     // --
4.$('p').parent();       // выбор всех прямых предков элементов p
5.$('* > p');            // выбор всех предков элементов p (скорей всего Вам не понадобится)
6.$('p').parents();      // --
7.$('p').parents('div'); // выбор всех предков элемента p которые есть div (parents принимает в качестве параметра селектор)

Фильтры

Фильтров в jQuery реализовано достаточно много, и пользоваться ими одно удовольствие:

01.$('div:first');     // выбираем первый div в доме
02.$('div:last');      // выбираем последний div в доме
03.$('div:not(.red)'); // выбираем div'ы у которых нету класса red
04.$('div:even');      // выбираем четные div'ы
05.$('div:odd');       // выбираем нечетные div'ы
06.$('div:eq(N)');     // выбираем div идущим под номером N в DOMe
07.$('div:gt(N)');     // выбираем div'ы, индекс которых больше чем N в DOMe
08.$('div:lt(N)');     // выбираем div'ы, индекс которых меньше чем N в DOMe
09.$(':header');       // выбо заголовоков h1, h2, h3 и т.д.
10.$('div:animated');  // выбор элементов с активной анимацией

Фильтры по контенту и видимости:

1.$('div:contains(text)'); // выбираем div'ы содержащие текст
2.$('div:empty');          // выбираем пустые div'ы
3.$('div:has(p)');         // выбираем div'ы которые содержат p
4.$('div.red').filter('.bold') // выбираем div'ы которые содержат класс red и класс bold
5.$('div:hidden');         // выбираем скрытые div'ы
6.$('div:visible');        // выбираем видимые div'ы

Так же есть фильтры по атрибутам:

01.$("div[id]");           // выбор всех div с атрибутом id
02.$("div[title='my']");   // выбор всех div с атрибутом title=my
03.$("div[title!='my']");  // выбор всех div с атрибутом title не равного my
04.$("div[title^='my']");  // выбор всех div с атрибутом title начинающихся с my
05.                        // <div title="myCat">,<div title="myCoffee">, <div title="my...">
06.$("div[title$='my']");  // выбор всех div с атрибутом title заканчивающихся на my
07.                        // <div title="itsmy">,<div title="somy">, <div title="...my">
08.$("div[title*='my']");  // выбор всех div с атрибутом title содержащим my
09.                        // <div title="itsmy">,<div title="myCat">, <div title="its my cat">,<div title="...my...">

так же стоит отдельно отметить следующий фильтр:

1.$("a[rel~='external']"); // выбор всех A с атрибутом rel содержащим external в списке значений разделенных пробелом

В результате его работы будут выбраны следующие теги:

1.<a href="" rel="external">link</a> - да
2.<a href="" rel="nofollow external">link</a> - да
3.<a href="" rel="external nofollow">link</a> - да
4.<a href="" rel="friend external follow">link</a> - да
5.<a href="" rel="external-link">link</a> - нет

Для работы с элементами форм есть ряд селекторов позволяющий выбирать по типу элемента и фильтров —

1.$(":text");            // выбор всех input элементов с типом =text
2.$(":radio");           // выбор всех input элементов с типом =radio
3.                       // и так далее
4.$("input:enabled");    // выбор всех включенных элементов input
5.$("input:checked");    // выбор всех отмеченных чекбоксов

Фильтры так же можно группировать:

1.$("div[name=city]:visible:has(p)"); // выбор видимого div'a с именем city, который содержит тег p

Приведу так же ряд полезных селекторов для работы с элементами форм:

1.$("form select[name=city] option:selected").val(); // получение выбранного(-ых) элементов в селекте city
2.$("form :radio[name=some]:checked").val(); // получение выбранного значения радиобатона с именем some
3.$("form :checkbox:checked"); // выбор всех выбранных чекбоксов
Comments ( 0 )
    -->