Подсчитайте количество li в ul и назначьте класс - PullRequest
1 голос
/ 17 октября 2019

У меня есть подкатегории woocommerce, которые динамически отображаются на странице архива. Мне нужно иметь возможность подсчитать, сколько в этом списке и добавить класс к ul на основе числа. Мой план состоял в том, чтобы использовать новый класс и затем использовать nth-child () в моем css для стилей. Так что, если есть 11 пунктов списка, добавьте product11 в ul. Если есть 5 пунктов списка, добавьте product5 к ul.

Я пробовал несколько разных версий кода подсчета jquery, которые я нашел в сети.

$('.site-main .subcategories ul.products.columns-3').each(function(index){

if(index=2)$(this).addClass("products2");
else if(index=3)$(this).addClass("products3");
else if(index=5)$(this).addClass("products5");
else if(index=6)$(this).addClass("products6");
 else if(index=7)$(this).addClass("products7");
else if(index=9)$(this).addClass("products9");
else(index=11)$(this).addClass("products11");

})

В результате я получил только первый класс на products2.

1 Ответ

0 голосов
/ 17 октября 2019

Не нужно считать вещи. Просто добавьте индекс и имя класса:

$('.site-main .subcategories ul.products.columns-3').each( function(index){
    $(this).addClass("products" + index);
})

РЕДАКТИРОВАТЬ:

Я прочитал вопрос еще раз, и я думаю, что он хочет добавить класс в зависимости отвсего li элементов в ul. Попробуйте этот код:

$('.site-main .subcategories ul.products.columns-3').each( function(){
    $(this).addClass('products' + $('ul.products li').length);
})
...