Количество дочерних элементов jquery: Узнать количество дочерних элементов? — Хабр Q&A

Свойство ParentNode.childElementCount | JavaScript справочник

JavaScript ParentNode

Определение и применение

JavaScript свойство childElementCount объекта ParentNode возвращает количество дочерних элементов конкретного узла. Свойство доступно только для чтения.


Обращаю Ваше внимание на то, что возвращаемое значение содержит количество дочерних элементов узла, а не количество всех дочерних узлов (например, узлов текста и комментарии).


Свойство childElementCount возвращает тот же результат, что и element.children.length.

Поддержка браузерами

JavaScript синтаксис:

const count = node.childElementCount;

node - Document, DocumentFragment или Element

Спецификация

DOM

Пример использования

<!DOCTYPE html>
<html>
	<head>
		<title>Пример использования JavaScript свойства childElementCount</title>
	</head>
	<body>
		<button onclick = "showChildElementCount()">Click me</button>
		<div id = "myNode">
		       Техт
		       <div>My div</div>
		       <p>My paragraph</p>
		       Text
		       <div>My div2</div>
		       <--! Comment -->
		</div>
		<p id = "result"></p>
		<script>
const showChildElementCount = function() { const count = document.getElementById("myNode").childElementCount; // возвращаем количество дочерних элементов узла с id myNode. document.getElementById("result").innerHTML = "Количество элементов: " + count; // вставляем в элемент текстовое содержимое со значением количества элементов };
</script> </body> </html>

В этом примере мы разместили элемент <div>, внутри которого мы разместили два текстовых узла, один узел комментария и три элемента (два элемента <div> и один элемент <p>).

Кроме того, мы разместили в документе кнопку (элемент <button>), которой с помощью атрибута событий onclick назначили функцию, которая срабатывают при нажатии. Эта функция при нажатии инициализирует переменную, которая с помощью метода getElementById() находит элемент с глобальным атрибутом id равным значению

myNode и с помощью свойства childElementCount определяет количество дочерних элементов узла.

Далее с использованием метода getElementById() находим элемент с глобальным атрибутом id равным значению result и с помощью свойства innerHTML вставляем в этот элемент текстовое содержимое со значением количества элементов, который содержит элемент с id равным значению myNode.

Обратите внимание на то, что возвращаемое значение свойства childElementCount содержит количество дочерних элементов узла, а не количество всех дочерних узлов (текстовые узлы и узлы комментария не включаются).

Результат нашего примера:

Пример использования JavaScript свойства childElementCountJavaScript ParentNode

Jquery количество дочерних элементов

4 Rouge [2012-09-10 19:39:00]

Я пытаюсь подсчитать, сколько элементов с классом .test внутри моего div. У меня

Я не могу получить правильное число div с тестом имени класса.

6 ответов

Измените селектор следующим образом:

Поместите space между #testDiv и .test .

$(‘#testDiv .test’) найдет прямых детей #testDiv , у которых >.

Полный код:

Примечание

$(‘#testDiv.test’) означает, что вы выбираете элемент, который имеет как >, так и >, как

Попробуйте добавить пробел между #testDiv и .test

У вас есть, как показано ниже,

3 Marc B [2012-09-10 19:41:00]

Вы ищете элемент с идентификатором testDiv И класс test , например

вместо этого. С пробелом будут все узлы с классом «test», которые являются дочерними элементами node с id testDiv.

Привет, я пишу 3 случая:

Метод 1: Если .test является прямым дочерним по отношению к #testdiv

В этом вы можете использовать . children

Это даст вам массив элементов с классом ‘test’. В javascript, чтобы найти размер массива, мы используем свойство length. Так $( «# Testdiv» ). Детей ( «тест» ). Длина сделают вашу работу.

Способ 2: Аналогично, чтобы найти все элементы с классом «test» в вашем #testdiv, вы можете использовать . Find callback. Этот подход следует использовать, если вы не знаете вложенный уровень элемента «.test», потому что он не оптимизирован. Например: $ ( «# Testdiv» ). Найти ( «Тест» ) Это даст вам массив элементов. Используйте ту же самую вещь .length, чтобы найти размер массива.

Способ 3: Вы также можете попробовать:

Это будет работать так же, как и метод: 2, но он менее оптимизирован.

Ваша ошибка: Вы попытались использовать следующий синтаксис

Этот селектор предоставляет элемент с классом ‘test’ и id ‘testdiv’.

Как используя jQuery посчитать количество дочерних элементов. Например нативным образом это можно сделать так:

А на jQuery, какие должны быть селекторы?

Селекторами вы количество не подсчитаете.

Приведу несколько примеров, по примеру на строчку:

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

У меня есть меню выпадашка, где есть пункты одного типа, и пункты другого, примерно в таком виде каждый пункт:

И я поставил 2 кнопки, чтобы каждая из них скрывала один из типов полей. Но есть пункты в которых только один тип, и хотелось бы чтобы если видимые дочерние пункты у родительского пункта отсутствуют, то и он бы скрывался. Как этого можно добится в jquery?

1 ответ 1

Можно задать родительским li какой-то класс и проверять, есть ли у них дочерние ul’ы. Если нет, скрывать:

Jquery количество дочерних элементов

4 Rouge [2012-09-10 19:39:00]

Я пытаюсь подсчитать, сколько элементов с классом .test внутри моего div. У меня

Я не могу получить правильное число div с тестом имени класса.

6 ответов

Измените селектор следующим образом:

Поместите space между #testDiv и .test .

$(‘#testDiv .test’) найдет прямых детей #testDiv , у которых >.

Полный код:

Примечание

$(‘#testDiv.test’) означает, что вы выбираете элемент, который имеет как >, так и >, как

Попробуйте добавить пробел между #testDiv и .test

У вас есть, как показано ниже,

3 Marc B [2012-09-10 19:41:00]

Вы ищете элемент с идентификатором testDiv

И класс test , например

вместо этого. С пробелом будут все узлы с классом «test», которые являются дочерними элементами node с id testDiv.

Привет, я пишу 3 случая:

Метод 1: Если .test является прямым дочерним по отношению к #testdiv

В этом вы можете использовать . children

Это даст вам массив элементов с классом ‘test’. В javascript, чтобы найти размер массива, мы используем свойство length. Так $( «# Testdiv» ). Детей ( «тест» ). Длина сделают вашу работу.

Способ 2: Аналогично, чтобы найти все элементы с классом «test» в вашем #testdiv, вы можете использовать . Find callback. Этот подход следует использовать, если вы не знаете вложенный уровень элемента «.test», потому что он не оптимизирован. Например: $ ( «# Testdiv» ). Найти ( «Тест» ) Это даст вам массив элементов. Используйте ту же самую вещь .length, чтобы найти размер массива.

Способ 3: Вы также можете попробовать:

Это будет работать так же, как и метод: 2, но он менее оптимизирован.

Ваша ошибка: Вы попытались использовать следующий синтаксис

Этот селектор предоставляет элемент с классом ‘test’ и id ‘testdiv’.

Как используя jQuery посчитать количество дочерних элементов. Например нативным образом это можно сделать так:

А на jQuery, какие должны быть селекторы?

Селекторами вы количество не подсчитаете.

Приведу несколько примеров, по примеру на строчку:

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

У меня есть меню выпадашка, где есть пункты одного типа, и пункты другого, примерно в таком виде каждый пункт:

И я поставил 2 кнопки, чтобы каждая из них скрывала один из типов полей. Но есть пункты в которых только один тип, и хотелось бы чтобы если видимые дочерние пункты у родительского пункта отсутствуют, то и он бы скрывался. Как этого можно добится в jquery?

1 ответ 1

Можно задать родительским li какой-то класс и проверять, есть ли у них дочерние ul’ы. Если нет, скрывать:

Работа с набором элементов — JQuery

Материал из JQuery

Как вам уже известно, первым действием в цепочке методов jQuery является отбор элементов страницы. В результате, вы получаете набор «заказанных» вами элементов, в виде объекта jQuery. В данном разделе представлены методы работы с этим набором. Вы сможете пополнять и проряжать набор выбранных элементов, обходить его поэлементно, а так же создавать новые наборы, на основе уже существующего.

Список функций

Перемещения по дереву DOM

.children() Находит все дочерние элементы у выбранных элементов. При необходимости, можно указать селектор для фильтрации.
.closest() Находит ближайший, соответствующий заданному селектору элемент, из числа следующих: сам выбранный элемент, его родитель, его прародитель, и так далее, до начало дерева DOM.
.find() Находит элементы по заданному селектору, внутри выбранных элементов.
.next() Находит элементы, которые лежат непосредственно после каждого из выбранных элементов.
.nextAll() Находит элементы, которые лежат после каждого из выбранных элементов.
.nextUntil() Находит элементы, которые лежат после каждого из выбранных, но не дальше элемента, удовлетворяющего заданному селектору.
.offsetParent() Возвращает ближайшего предка c позиционированием, отличным от static (позиционирование по умолчанию).
.parent() Находит родительские элементы у всех выбранных элементов.
.parents() Находит всех предков у выбранных элементов, т.е. не только прямых родителей, но и прародителей, прапрародителей и так далее, до начало дерева DOM.
.parentsUntil() Находит предков, как и .parents(), но прекращает поиск перед элементом, удовлетворяющим заданному селектору.
.prev() Находит элементы, которые лежат непосредственно перед каждым из выбранных элементов.
.prevAll() Находит элементы, которые лежат перед каждым из выбранных элементов.
.prevUntil() Находит элементы, которые лежат перед каждым из выбранных, но не дальше элемента, соответствующего заданному селектору.
.siblings() Находит все соседние элементы (под соседними понимаются элементы с общим родителем).

Фильтрация набора

.eq() Возвращает элемент, идущий под заданным номером в наборе выбранных элементов.
.filter() Фильтрует набор выбранных элементов с помощью заданного селектора или функции.
.first() Возвращает первый элемент в наборе.
.has() Фильтрует набор выбранных элементов, оставляя те, которые имеют потомков, соответствующих селектору.
.is() Проверяет, содержится ли в наборе, хотя бы один элемент удовлетворяющий заданному селектору.
.last() Возвращает последний элемент в наборе.
.not() Возвращает элементы, не соответствующие заданным условиям.
.slice() Возвращает элементы с индексами из определенной области (например от 0 до 5).

Обход набора

.each() Вызывает заданную функцию для каждого элемента набора.
.map() Вызывает заданную функцию для каждого элемента набора, и в итоге создает новый набор, составленный из значений, возвращенных этой функцией.

Другие методы

.add() Добавляет заданные элементы в набор.
.andSelf() Добавляет элементы из предыдущего набора, к текущему (речь идет об одной цепочке методов).
.contents() Находит все дочерние элементы у выбранных элементов. В результат, помимо элементов, включается и текст.
.end() Возвращает предыдущий набор элементов в текущей цепочке методов.

Как найти количество элементов от дочернего к родительскому с помощью jquery?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Получить второго ребенка с помощью jQuery

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

итераций — как перебирать дочерние элементы div с помощью jQuery?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

jQuery: nth-child () Селектор

❮ Селекторы jQuery

Пример

Выберите каждый элемент

, который является третьим дочерним элементом своего родителя:

$ («p: nth-child (3)»)

Попробуй сам »

Определение и использование

Селектор: nth-child ( n ) выбирает все элементы, которые являются дочерними элементами n , независимо от типа, из их родитель.

Совет: Используйте селектор: nth-of-type (), чтобы выбрать все элементы, которые n th дочерний элемент определенного типа своего родителя.


Синтаксис

: nth-child ( n | четный | нечетный | формула )


Параметр Описание
n Индекс каждого дочернего элемента для сопоставления.

Должен быть числом. Первый элемент имеет порядковый номер 1.

даже Выбирает каждый четный дочерний элемент
нечет Выбирает каждый нечетный дочерний элемент
формула Указывает, какие дочерние элементы должны быть выбраны с помощью формулы ( и + b ).
Пример: p: nth-child (3n + 2) выбирает каждый третий абзац, начиная со второго дочернего элемента

Попробуйте сами — пример

Выбрать каждый элемент

, который является вторым дочерним элементом всех элементов


Как выбрать каждый элемент

, который является вторым дочерним элементом всех элементов

.

Используя формула (an + b)
Как использовать формулу ( и + b ) для выбора различных дочерних элементов.

Использование «четное» и «нечетное»
Как использовать четное и нечетное для выбора разных дочерних элементов.

Разница между: nth-child (),: nth-last-child (),: nth-of-type () и : nth-of-last-type ()
Разница между p: nth-child (2), p: nth-last-child (2), p: nth-of-type (2) и p: nth-of-last-type (2).


❮ Селекторы jQuery


.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *