Есть ли способ, который я могу подсчитать, сколько элементов находится внутри другого элемента, а затем выводит класс дочерним элементам на основе этого числа?
Например;
<ul class="paging">
<li><a href="#">content</a></li>
<li><a href="#">content</a></li>
<li><a href="#">content</a></li>
<li><a href="#">content</a></li>
</ul>
Поскольку есть 4 элемента списка, каждому элементу списка будет назначен класс list-4
или что-то подобное. Если есть 5 list-5
и т.д. И т.д.
Да.
$('.paging').each(function() {
var listElements = $(this).children('li');
var listCount = listElements.length //get number of list elements
listElements.each(function() {
$(this).addClass('list-' + listCount);
});
});
Вы можете подсчитать длину объекта jQuery с помощью .length
. Для вашего примера будет работать следующее:
$('.paging').each(function() {
var children = $(this).children('li');
children.addClass('list-'+children.length);
});
Поскольку мы используем children()
, это будет включать только прямых детей (т.е. что-либо внутри элементов <li>
будет проигнорировано).