Подсчитайте количество элементов, а затем назначьте класс

0

Есть ли способ, который я могу подсчитать, сколько элементов находится внутри другого элемента, а затем выводит класс дочерним элементам на основе этого числа?

Например;

<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 и т.д. И т.д.

Теги:

2 ответа

2
Лучший ответ

Да.

   $('.paging').each(function() {
      var listElements = $(this).children('li');
      var listCount = listElements.length //get number of list elements
      listElements.each(function() {
           $(this).addClass('list-' + listCount);
       });
    });
  • 0
    Это было правильно для заданного вопроса, однако, теперь это работает для нескольких списков с одним и тем же классом.
1

Вы можете подсчитать длину объекта jQuery с помощью .length. Для вашего примера будет работать следующее:

$('.paging').each(function() { 
    var children = $(this).children('li');
    children.addClass('list-'+children.length);
});

Поскольку мы используем children(), это будет включать только прямых детей (т.е. что-либо внутри элементов <li> будет проигнорировано).

jsFiddle Demo

Ещё вопросы

Сообщество Overcoder
Наверх
Меню