Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Автор: чайник, в новости:

Что такое API и для чего они нужны

Автор: HIshnik, в новости:

Классы в PHP для чайников

Автор: Аноним, в новости:

Написание простого вируса в блокноте

Автор: stream, в новости:

Создаем BB коды на PHP

Топ пользователей
Drunya
Репутация: 108
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
Выбор элементов по Id либо ClassName аналогично используемому в CSS
1
2
3
4
$('#sidebar');    // выбор элемента с id = sidebar
    $('.post');       // выбор элементов с class = post
    $('div#sidebar'); // выбор элемента div с id = sidebar
    $('div.post');    // выбор элементов div с class = post
Примечание: используйте валидные имена классов и id




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


Простой выбор потомков:
1
$('div span');            // выбор всех span элементов в элементах div

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

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

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

Так же селекторы можно группировать:
1
$('div, span');          // выбор всех div и span элементов

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





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

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




Фильтры
Фильтров в jQuery реализовано достаточно много, и пользоваться ими одно удовольствие:
1
2
3
4
5
6
7
8
9
10
$('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');       // выбо заголовоков h1, h2, h3 и т.д.
    $('div:animated');  // выбор элементов с активной анимацией




Фильтры по контенту и видимости:
1
2
3
4
5
6
$('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'ы





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

1
2
3
4
5
6
7
8
9
$("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...">




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


В результате его работы будут выбраны следующие теги:
1
2
3
4
5
<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:
1
2
3
4
5
$(":text");            // выбор всех input элементов с типом =text 
    $(":radio");           // выбор всех input элементов с типом =radio
                           // и так далее
    $("input:enabled");    // выбор всех включенных элементов input
    $("input:checked");    // выбор всех отмеченных чекбоксов





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

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

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

Теги: JQuery DOM селекторы и выборки по элементам классам и т.д.;
Автор: Drunya
Категория: JavaScript
Просмотров: 2491
Комментариев: 0

Сейчас online: 29. Зарегистрированных: 1. Гостей: 28.
-->