Создано: 26 декабря 2015Автор: Егор Астапов2125 просмотровСложность: легкий
В jquery селекторы используют для того чтобы схватить элемент или несколько элементов DOM. Потом с захваченными элементами DOM что-то делают. Благодаря селекторам вы можете находить элементы по различным признакам: значению атрибутов, порядковым номерам, именам классов, идентификаторов, содержимому элементов, родительским элементам, дочерним элементам.
Приведу вам самый простой пример. Для того чтобы схватить все блоки div вы должны использовать селектор $("div"). Обратите внимание на то, что будут выделены все блоки div. Если хотите узнать сколько таких блоков на странице, то применить функцию length. Например, $("div").length. Селектор $('.class-name') найдет все элементы с классом class-name. Точка перед началом селектора обязательна. Если вы забудете указать точку, то вернется пустой результат. $( ) — это функция для поиска элементов по заданному селектору jQuery. Подробно об изменении свойств класса читайте на странице как получить изменить свойства класса для элемента css() jquery.
var count_block = $(".left-block").length;
console.log(count_block);
// вывод: 3
Теперь пример посложней. Допусти у вас несколько id и они похожи друг на друга. Как их всех схватить. Вся сложность в том, что id разные? Тут нам поможет условие в атрибуте $("div[id^='left-block']"). Есть ещё один способ перечисления атрибутов. Он заключается в перечислении атрибутов через запятую. Например, $("#left-block1, #left-block2, #left-block3"). Обратите внимание на то что строка внутри селектора становится слишком большой. Это не удобно. Можно эту запись записать по другому: $("div[id='left-block1'][id='left-block2'][id='left-block3']").
"#idName" - элемент (один!) с идентификатором idName
"tagName" - элементы с заданным именем тега
Фильтры по содержимому
":contains(text)" - элементы, содержащие заданный текст
":empty" - элементы без содержимого (без текста и других элементов)
":has(selector)" - элементы, которые содержат хотя бы один элемент из selector
":parent" - непустые элементы
Фильтры дочерних элементов. Cелекторы отфильтровывают элементы согласно их расположению в родительских элементах
":first-child" - элементы, расположенные первыми в своих родительских элементах
":last-child" - элементы, расположенные последними в своих родительских элементах
":nth-child( )" и ":nth-child-last( )" - элементы, расположенные определенным образом в родительских элементах (четные, нечетные, идущие под заданным номером)
":only-child" - элементы, являющиеся единственными потомками в своих родительских элементах
":only-of-type" - элементы, являющиеся единственными, удовлетворяющими селектору, потомками в своих родительских элементах
":first-of-type" - те из выбранных элементов, которые первыми встречаются в своих родительских элементах
":last-of-type" - те из выбранных элементов, которые последними встречаются в своих родительских элементах
":nth-first-of-type( )" и ":nth-last-of-type( )" - те из выбранных элементов, которые в определенную очередь встречаются в своих родительских элементах
Фильтры элементов форм
":button" - элементы с тегом button или типом button