Количество дочерних элементов 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?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.
Получить второго ребенка с помощью jQuery
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.
итераций — как перебирать дочерние элементы div с помощью jQuery?
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
.
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
.