Полный цикл в digital

Псевдокласы и селекторы

Селекторы :first, :first-child, :last, :eq, :lt, :gt, :even, :odd

jQuery поддерживает все стандартные селекторы CSS, псевдоклассы, псевдоэлементы.

В дополнение к ним jQuery поддерживает нестандартные селекторы (псевдоклассы), которые позволяют расширить селекторы CSS.

Для примера возьмем псевдокласс :first, который позволяет выбрать первый элемент в наборе jQuery. Давайте с его помощью найдем первый <li> на странице:

$('li:first');

Есть более стандартный псевдокласс :first-child:

$('li:first-child');

С помощью :first-child мы найдем все li, которые являются первыми потомками своих родителей, с помощью :first мы найдем первый li среди выбранных, так как выбирали мы все li, по сути мы найдем первый li на странице.

:first и другие подобные селекторы jQuery работают так, находят все элементы по заданному селектору, а затем берут первый элемент среди найденных.

Аналогичным образом работает :last, только он находит не первый элемент, а последний.

С помощью :eq мы можем выбрать элемент с любым номером в наборе, к примеру таким образом :eq(3) мы выберем третий найденный элемент.

С помощью :lt и :gt можно выбирать элементы с номером, меньшим или большим заданного числа соответственно. К примеру таким образом :lt(3) мы выберем элементы с номером меньшим трех.

С помощью :even и :odd можно выбирать четные и нечетные элементы в наборе.

Псевдокласс :header

Псевдокласс :header выбирает одновременно все заголовки от h1 до h6.

Псевдокласс :has

Псевдокласс :has выбирает элементы по их содержимому, можно выбрать все абзацы, внутри которых есть теги b:

<p>Абзац с тегом <b>b</b>.</p>
<p>Абзац с тегом <i><b>b</b></i>.</p>
<p>Абзац без b.</p>

<script>
$('p:has(b)')
</script>

Обратите внимание, в примере выберется как первый абзац, так и второй, не смотря на то, что во втором абзаце тег b не лежит непосредственно внутри p, а лежит сначала в i. Если же вам нужна непосредственная вложенность, то следует сделать так:

<p>Абзац с тегом <b>b</b>.</p>
<p>Абзац с тегом <i><b>b</b></i>.</p>
<p>Абзац без b.</p>

<script>
$('p:has(>b)');
</script>

Псевдокласс :contains

Псевдокласс :contains выбирает элементы по наличию определенного текста в них. В следующем примере мы выберем абзац, внутри которого есть слово текст:

<p>Слово "текст".</p>
<p>Просто абзац.</p>

<script>
$('p:contains("текст")');
</script>

С помощью :contains() элемент будет выбран, если строка присутствует непосредственно внутри него или если она находится внутри одного из его потомков.

Псевдоклассы :empty, :parent

Псевдокласс :empty позволяет выбрать все пустые элементы в которых нету текста, а псевдокласс :parent - наоборот, все непустые, он выбирает все элементы, являющиеся родителями.

Метод .parent()

Кроме псевдокласса :parent существует еще и метод .parent(), который позволяет выбрать родителя элемента. Найдем родителя тега b и поставим ему красный цвет:

<p>Абзац с тегом <b>b</b>.</p>
<p>Абзац без b.</p>

<script>
$('b').parent().css('color', 'red');
</script>

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг