Все jQuery селекторы | jQuery справочник

СелекторПримерОписание примера
*$(«*»)Выбирает все элементы в документе (включая <html>, <head> и <body>).
#id$(«#test»)Выбирает элемент, глобальный атрибут id которого, имеет значение «test» (элемент с определенным идентификатором).
.class$(«.test»)Выбирает элементы, глобальный атрибут class которых, имеет значение «test».
element$(«a»)Выбирает все HTML элементы <a> в документе.
selector,selector$(«i,b,em,.class»)Выбирает все HTML элементы <i>, <b>, <em> и элементы, глобальный атрибут class которых, имеет значение «test» в документе.
element element$(«div a»)Выбирает все элементы <a>, вложенные внутри элементов <div> (селектор потомков).
element > element$(«div > strong»)Выбирает все дочерние элементы <strong>, у которых родитель — элемент <div> (селектор дочерних элементов).
element + element$(«h3 + p»)Выбирает все элементы <p>, которые расположены сразу же после элементов <h3>.
element ~ element$(«div ~ p»)Выбирает все элементы <p>, которые следуют сразу же за элементом <h3>, а также все элементы <p>, которые находятся на одном уровне вложенности (сестринские элементы).
:first$(«a:first»)Выбирает первый HTML элемент <a> в документе.
:last$(«a:last»)Выбирает последний HTML элемент <a> в документе.
:even$(«tr:even»)Выбирает каждый элемент с четным индексом (например: 0, 2, 4 и так далее), или другими словами выбирает каждый нечетный HTML элемент <tr> в документе (например: 1, 3, 5 и так далее).
:odd$(«tr:odd»)Выбирает каждый элемент с нечетным индексом (например: 1, 3, 5 и так далее), или другими словами выбирает каждый четный HTML элемент <tr> в документе (например: 2, 4, 6 и так далее).
:first-child$(«li:first-child»)Выбирает элементы <li>, которые являются первыми дочерними элементом своего родителя.
:first-of-type
$(«p:first-of-type»)Выбирает все элементы <p>, которые являются первыми дочерними элементами (определенного типа) своего родителя.
:last-child$(«li:last-child»)Выбирает элементы <li>, которые являются последними дочерними элементами своего родителя.
:last-of-type$(«p:last-of-type»)Выбирает все элементы <p>, которые являются последними дочерними элементами (определенного типа) своего родителя.
:nth-child(n)$(«tr:nth-child(3)»)Выбирает каждый элемент <tr>, который является третьим дочерним элементом своего родительского элемента.
:nth-last-child(n)$(«li:nth-last-child(3)»)Выбирает каждый элемент <li>, который является третьим дочерним элементом своего родительского элемента (считая от последнего дочернего элемента).
:nth-of-type(n)$(«img:nth-of-type(2)»)Выбирает каждый элемент <img>, который является вторым дочерним элементом своего родительского элемента.
:nth-last-of-type(n)$(«img:nth-last-of-type(2)»)Выбирает каждый элемент <img>, который является вторым дочерним элементом своего родительского элемента (считая от последнего дочернего элемента).
:only-child$(«a:only-child»)Выбор каждого элемента <a>, который является единственным дочерним элементом своего родительского элемента (нет других элементов).
:only-of-type$(«a:only-of-type»)Выбор каждого элемента <a>, который является единственным элементом <a> своего родительского элемента (нет других элементов <a>).
:eq(index)$(«td:eq(3)»)Выбирает четвертую ячейку данных (тег <td>) внутри таблицы (индекс начинается с нуля).
:gt(index)$(«td:gt(3)»)Выбирает все ячейки данных (тег <td>) чей индекс больше трех (индекс начинается с нуля).
:lt(index)$(«td:lt(3)»)Выбирает все ячейки данных (тег <td>) чей индекс меньше трех (индекс начинается с нуля).
:not(selector)$(«div:not(.test)»)Селектор отрицания выбирает все элементы <div>, кроме тех, глобальный атрибут class которых, имеет значение «test».
:header$(«:header»)Выбирает все элементы, которые являются заголовками (от <h2> и до <h6>).
:animated$(«:animated»)Выбирает все элементы, которые находятся в процессе анимации в тот момент, когда селектор используется (только для элементов анимируемых с использованием библиотеки jQuery).
:focus$(«:focus»)Определяет какой элемент находится в фокусе в данный момент.
:contains(text)$(«:contains(‘Aloha’)»)Выбирает все элементы, которые содержат текст «Aloha»
:has(selector)$(«div:has(h4)»)Выбирает все элементы <div>, которые содержат в себе элементы <h4> (в качестве дочернего элемента, либо потомка).
:empty$(«:empty»)Выбирает все элементы, которые не имеют дочерних элементов и текстовых узлов (пустые элементы).
:parent$(«:parent»)Выбирает все элементы, которые имеют по крайней мере один дочерний узел (элемент или текст).
:hidden$(«div:hidden»)Выбирает все элементы <div>, которые скрыты (не занимают место в документе).
:visible$(«div:visible»)Выбирает все элементы <div>, которые являются видимыми (занимают место в документе).
:root$(«:root»)Выбирает элемент, который является корневым для документа.
:lang(language)$(«p:lang(ru)»)Выбирает каждый элемент <p>, глобальный атрибут lang которого, содержит значение «ru».
[attribute]$(«[alt]»)Выбирает все элементы, которые имеют атрибут alt с любым значением.
[attribute=’value’]$(«[src=’logo.png’]»)Выбирает все элементы, которые имеют указанный атрибут (src) со значением logo.png.
[attribute=’value’][attribute2=’value2′]$(«[src=’logo.png’][alt=’image’]»)Выбирает все элементы, которые имеют указанные атрибуты (src и alt) со значениями этих атрибутов logo.png для первого и image для второго.
[attribute!=’value’]$(«[src!=’logo.png’]»)Выбирает все элементы, которые не имеют указанный атрибут, либо имеют указанный атрибут (src) со значением отличным от logo.png (не равно этому значению).
[attribute$=’value’]$(«[href$=’.php’]»)Выбирает все элементы, значение атрибута href которых, заканчивается на
«.php»
.
[attribute|=’value’]$(«[title|=’ru’]»)Выбирает элементы, которые имеют глобальный атрибут title со значением равным «ru», либо элементы, значение которых начинается с этого значения и после него сразу следует дефис («ru-anystring»).
[attribute^=’value’]$(«[title^=’eng’]»)Выбирает элементы, которые имеют указанный глобального атрибут title со значением, которое начинается с «eng».
[attribute~=’value’]$(«[title~=’free’]»)Выбирает все элементы со значением глобального атрибута title, содержащего определенное слово «free» (слово может быть разделено пробелами).
[attribute*=’value’]$(«[title*=’free’]»)Выбирает все элементы со значением глобального атрибута title, содержащего указанную подстроку «free».
:input$(«:input»)Выбирает все элементы <input>, <textarea>, <select> и <button>.
:text$(«:text»)Выбирает все элементы

basicweb.ru

jQuery для начинающих. Часть 4. Селекторы / Habr

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

Во всех примерах используется сокращенный вариант вызова jQuery методов, используя функцию $ (знак доллара)

Селекторы в jQuery базируются на CSS селекторах, а так же поддерживают XPath. Дабы не закапываться в документацию буду приводить примеры, много примеров. Но начнем с самых азов…

Для начала нам понадобиться макет HTML странички (вполне типичный макет):

<div id=»header»>
    <h2><a href=»/» title=»homepage»>Title</a></h2>
    <h3>Sub-title <span>small description</span></h3>
</div>
<div id=»wrapper»>
    <div id=»content»>
        <div class=»post»>
            <h4>Post Title</h4>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed viverra tempus sapien.
               Cras condimentum, tellus id lacinia fermentum, tortor lectus tincidunt sapien,
               vel varius augue tortor vel tortor.</p>
            <span>Image Title</span>
            <img src=»/image1.jpg» alt=»Image Alt Text»/>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed viverra tempus sapien.
               Cras condimentum, tellus id lacinia fermentum, tortor lectus tincidunt sapien,
               vel varius augue tortor vel tortor.</p>
            <span class=»inner-banner»>Banner Text</span>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed viverra tempus sapien.
               Cras condimentum, tellus id lacinia fermentum, tortor lectus tincidunt sapien,
               vel varius augue tortor vel tortor.</p>
        </div>
        <span id=»banner»><img src=»/banner1.jpg» alt=»Big Banner»/></span>
        <div class=»post»>
            <h4>Post Title</h4>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed viverra tempus sapien.
               Cras condimentum, tellus id lacinia fermentum, tortor lectus tincidunt sapien,
               vel varius augue tortor vel tortor.</p>
            <span>Image Title</span>
            <img src=»/image2.jpg» alt=»Image Alt Text»/>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed viverra tempus sapien.
               Cras condimentum, tellus id lacinia fermentum, tortor lectus tincidunt sapien,
               vel varius augue tortor vel tortor.</p>
            <span class=»inner-banner»>Banner Text</span>
            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed viverra tempus sapien.
               Cras condimentum, tellus id lacinia fermentum, tortor lectus tincidunt sapien,
               vel varius augue tortor vel tortor.</p>
        </div>
    </div>
</div>
<div id=»sidebar»>
    <ul> 
         <li><a href=»/item0.html»>Menu Item 0</a></li>
         <li><a href=»/item1.html»>Menu Item 1</a></li>
         <li><a href=»/item2.html»>Menu Item 2</a></li>
         <li><a href=»/item3.html»>Menu Item 3</a></li>
    </ul>
</div>
<div id=»footer»>
    Copyright &copy; 2008
</div>

А теперь приступим к выборкам:

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

$(‘#sidebar’);    // выбор элемента с id = sidebar
$(‘.post’);       // выбор элементов с class = post
$(‘div#sidebar’); // выбор элемента div с id = sidebar
$(‘div.post’);    // выбор элементов div с class = post

Примечание: используйте валидные имена классов и id

Бродим по иерархии объектов в DOM’е

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

$(‘div span’);            // выбор всех span элементов в элементах div

Аналогичный результат так же можно получить используя следующую конструкцию:

$(‘div’).find(‘span’);    // выбор всех span элементов в элементах div

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

$(‘div > span’);          // выбор всех span элементов в элементах div, где span является прямым потомком div’a

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

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

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

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

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

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

$(‘*’);                // выбор всех элементов
$(‘p > *’);            // выбор всех потомков элементов p
$(‘p’).children();     // —
$(‘p’).parent();       // выбор всех прямых предков элементов p
$(‘* > p’);            // выбор всех предков элементов p (скорей всего Вам не понадобится)
$(‘p’).parents();      // —
$(‘p’).parents(‘div’); // выбор всех предков элемента p которые есть div (parents принимает в качестве параметра селектор)

Фильтры


Фильтров в jQuery реализовано достаточно много, и пользоваться ими одно удовольствие:
$(‘div:first’);     // выбираем первый div в доме
$(‘div:last’);      // выбираем последний div в доме
$(‘div:not(.red)’); // выбираем div’ы у которых нету класса red
$(‘div:even’);      // выбираем четные div’ы
$(‘div:odd’);       // выбираем нечетные div’ы
$(‘div:eq(N)’);     // выбираем div идущим под номером N в DOMe
$(‘div:gt(N)’);     // выбираем div’ы, индекс которых больше чем N в DOMe
$(‘div:lt(N)’);     // выбираем div’ы, индекс которых меньше чем N в DOMe
$(‘:header’);       // выбо заголовоков h2, h3, h4 и т.д.
$(‘div:animated’);  // выбор элементов с активной анимацией

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

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

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

$(«div[id]»);           // выбор всех div с атрибутом id
$(«div[title=’my’]»);   // выбор всех div с атрибутом title=my
$(«div[title!=’my’]»);  // выбор всех div с атрибутом title не равного my
$(«div[title^=’my’]»);  // выбор всех div с атрибутом title начинающихся с my 
                        // <div title=»myCat»>,<div title=»myCoffee»>, <div title=»my…»>
$(«div[title$=’my’]»);  // выбор всех div с атрибутом title заканчивающихся на my 
                        // <div title=»itsmy»>,<div title=»somy»>, <div title=»…my»>
$(«div[title*=’my’]»);  // выбор всех div с атрибутом title содержащим my
                        // <div title=»itsmy»>,<div title=»myCat»>, <div title=»its my cat»>,<div title=»…my…»>

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

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

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

<a href=»» rel=»external»>link</a> — да
<a href=»» rel=»nofollow external»>link</a> — да
<a href=»» rel=»external nofollow»>link</a> — да
<a href=»» rel=»friend external follow»>link</a> — да
<a href=»» rel=»external-link»>link</a> — нет

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

$(«:text»);            // выбор всех input элементов с типом =text 
$(«:radio»);           // выбор всех input элементов с типом =radio
                       // и так далее
$(«input:enabled»);    // выбор всех включенных элементов input
$(«input:checked»);    // выбор всех отмеченных чекбоксов

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

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

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

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

Еще советую почитать статью jQuery: 8 полезных советов при работе с элементом SELECT

Если Вам хочеться опробывать как это все работает — то для этого можете воспользоваться тестовой страничкой

Слайды


Как-то слишком много текста получилось, пожалуй пора показывать слайды 😉

Данная статья написана с использованием следующих ресурсов:

Цикл статей


  1. jQuery для начинающих
  2. jQuery для начинающих. Часть 2. JavaScript Меню
  3. jQuery для начинающих. Часть 3. AJAX
  4. jQuery для начинающих. Часть 4. Селекторы

habr.com

Селекторы jQuery

Селекторы jQuery выбирают элементы веб-страницы, а методы выполняют операции с этими элементами.

Чтобы выбрать элементы, нужно передать селектор функции $(), например, $("img:odd"). Данный селектор будет применен ко всему дереву DOM, и чтобы ограничить процедуру отбора элементов, можно указать определенный фрагмент дерева DOM — $("img:odd", "div#slideshow"). Таким образом будут выбраны все четные картинки из блока с id=slideshow.

Для более точного выбора элементов селекторы можно комбинировать, например, следующая запись позволит выбрать все флажки полей формы, которые были выделены пользователем — $("input[type=checkbox][checked]").

А с помощью этой комбинации селекторов $("input:checkbox:checked:enabled") можно выбрать только активные и отмеченные флажки полей формы.

Также, допускается объединять несколько селекторов в одно выражение, разделяя селекторы запятой — $("p,span"), что позволит отобрать все элементы <p> и <span>.

Таблица 1. Селекторы jQuery
СелекторОписание, пример
ЭлементаВыбирает все элементы данного типа на странице, например, $("div").
Элемент1 элемент2Выбирает все элементы2, вложенные непосредственно в элемент1, например, $("p img").
КлассаВыбирает все элементы заданного класса, например, $(".sidebar").
ИдентификатораВыбирает элемент с указанным идентификатором, например, $("#main").
Элемент классВыбирает из элементов данного типа только те элементы, которым назначен указанный класс, например, $("p.first").
ПотомкаВыбирает все указанные элементы выбранного селектора, например, $(".sidebar a").
ДочерниеВыбирает элементы, соответствующие второму селектору, которые содержатся непосредственно внутри первого селектора, являющиеся дочерними по отношению к нему, например, $("body > p").
СестринскиеВыбирает элементы, соответствующие второму селектору, идущие непосредственно за первым элементом, являющимся для него сестринским, например, $("h3 + p").
Выбирает элементы, соответствующие второму селектору, являющиеся сестринскими по отношению к первому элементу и расположенные после него, например, $("h3 ~ p").
АтрибутаВыбирает все элементы, которые содержат данный атрибут или указанно значение атрибута, например, $("img[alt]"), $("a[href]"), $("input[type='text']").
Выбирает все элементы, начинающиеся с определенного значения, например, $("a[href^='http://']").
Выбирает все элементы, заканчивающиеся на определенное значение, например, $("a[href$='.pdf']").
Выбирает все элементы, содержащие в любом месте определенное значение, например, $("a[target*='blank']").
:evenВыбирает элементы по четным значениям индекса 0, 2, 4…, т.е. выбирает 1, 3, 5… элементы, например, $("li:even").
:oddВыбирает элементы по нечетным значениям индекса, т.е. выбирает 0, 2, 4… элементы.
:firstВыбирает только один элемент, первый из подходящих, например, $("p:first").
:lastВыбирает только один элемент, последний из подходящих.
:first-childВыбирает элементы, которые являются первыми дочерними элементами своих родителей.
:last-childВыбирает элементы, которые являются последними дочерними элементами своих родителей.
:only-childВыбирает элементы, являющиеся единственными дочерними элементами своих родителей.
:nth-child(n)Выбирает элементы, которые являются n-дочерними элементами своих родителей.
:nth-child(Xn+Y)Выбирает n-элемент, порядковый номер которого рассчитывается по формуле в круглых скобках.
:nth-of-type(n)Выбирает элементы, являющиеся n-ми дочерними элементами данного типа для своих родителей.
:parentВыбирает непустые элементы, которые имеют вложенные (дочерние) элементы, а также содержащие текст.
:eq(n)Выбирает элементы с индексом n, при этом индексы отсчитываются от нуля.
:gt(n)Выбирает все элементы, индекс которых больше n, индексы отсчитываются от нуля.
:lt(n)Выбирает все элементы, расположенные перед n-элементом, не включая n-элемент.
:not(селектор)Позволяет выбрать элемент, не соответствующий данному типу селектора, например, $("a:not(.link)"), $("a:not([href$='.pdf'])").
:has(селектор)Выбирает элементы, которые содержат внутри себя указанный селектор, например, элементы списка, содержащие внутри себя ссылки: $("li:has(a)").
:contains(текст)Выбирает элементы, которые содержат указанный в скобках текст, например, $("a:contains(Скачать)").
:hiddenВыбирает скрытые элементы, для которых установлено значение display: none;, а также элементы форм со значением type="hidden" например, $("ul:hidden").show() — делает скрытые элементы видимыми.
:visibleВыбирает видимые элементы, к видимым элементам относятся элементы, размеры которых больше нуля, а также элементы со значением visibility: hidden и opacity: 0.
:activeВыбирает элемент, который активизирован пользователем, например, с помощью щелчка мыши.
:checkedВыбирает только отмеченные флажки или радиокнопки.
:focusВыбирает элемент, находящийся в фокусе.
:hoverВыбирает элемент, на который наведен указатель мыши.
:disabledВыбирает неактивные элементы (форм).
:enabledВыбирает активные элементы (форм).
:emptyВыбирает элементы, не содержащие дочерних элементов.
:targetВыбирает элементы, на которые ссылается идентификатор фрагмента в url-адресе.
:animatedВыбирает все анимируемые в данный момент элементы.
:buttonВыбирает все кнопки input[type=submit], input[type=reset], input[type=button], button.
:checkboxВыбирает элементы-флажки input[type=checkbox].
:fileВыбирает элементы типа file, input[type=file].
:headerВыбирает элементы-заголовки от h2 до h6.
:imageВыбирает изображения в элементах форм input[type=image].
:inputВыбирает элементы форм input, select, textarea, button.
:passwordВыбирает элементы ввода пароля input[type=password].
:radioВыбирает радиокнопки input[type=radio].
:resetВыбирает кнопки сброса input[type=reset], button[type=reset].
:selectedВыбирает выделенные элементы option.
:submitВыбирает кнопки отправки формы input[type=submit], button[type=submit].
:textВыбирает элементы ввода текстаinput[type=text].

html5book.ru