Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подскажите как посчитать элементы списков и для каждого списка назначить свои парамет (https://javascript.ru/forum/jquery/51908-podskazhite-kak-poschitat-ehlementy-spiskov-i-dlya-kazhdogo-spiska-naznachit-svoi-paramet.html)

romanpan2 24.11.2014 18:46

Подскажите как посчитать элементы списков и для каждого списка назначить свои парамет
 
В общем такой вопрос... есть несколько списков... Задача такая...в каждом списке посчитать <li> и на основе подсчитанных данных присвоить каждому свой класс
Код:

<ul class='nav'>
    <li>Ссылка</li>
    <li>Ссылка</li>
    <li>Ссылка</li>
</ul>
<ul class='nav'>
    <li>Ссылка</li>
    <li>Ссылка</li>
</ul>
<ul class='nav'>
    <li>Ссылка</li>
    <li>Ссылка</li>
    <li>Ссылка</li>
    <li>Ссылка</li>
    <li>Ссылка</li>
</ul>

Скрипт
Код:

jQuery('.nav').children('li').each(function(){
                 
                  if (jQuery(this).length = '2') { jQuery(this).addClass('2');}
                  else if (jQuery(this).length = '3'){ jQuery(this).addClass('3'); }
                  else if (jQuery(this).length = '4'){ jQuery(this).addClass('4'); };
                });

Получается, что он присвает каждому <li> один класс.. А необходимо если в одном <ul> определенное колличество <li> он этим <li> присвоил свой класс и так для каждого <ul> списка
Т.е. в итоге должен получиться следующий код
Код:

<ul class='nav'>
    <li class='3'>Ссылка</li>
    <li class='3'>Ссылка</li>
    <li class='3'>Ссылка</li>
</ul>
<ul class='nav'>
    <li class='2'>Ссылка</li>
    <li class='2'>Ссылка</li>
</ul>
<ul class='nav'>
    <li class='5'>Ссылка</li>
    <li class='5'>Ссылка</li>
    <li class='5'>Ссылка</li>
    <li class='5'>Ссылка</li>
    <li class='5'>Ссылка</li>
</ul>


рони 24.11.2014 18:54

Цитата:

Сообщение от romanpan2
length = '2'

это что по вашему?

romanpan2 24.11.2014 18:56

Код:

jQuery(this).length = '2'
Это он посчитал кол-во <li> в списке и сравнивает

рони 24.11.2014 19:01

romanpan2,
а где сравнение то ??????

рони 24.11.2014 19:02

romanpan2,
:cray:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
     $(".nav").each(function(indx, element){
       var li = $(this).find('li');
        li.addClass(''+li.length)
           });
   alert($('body').html())
});
  </script>
</head>

<body>

<ul class='nav'>
     <li>Ссылка</li>
     <li>Ссылка</li>
     <li>Ссылка</li>
</ul>
<ul class='nav'>
     <li>Ссылка</li>
     <li>Ссылка</li>
</ul>
<ul class='nav'>
     <li>Ссылка</li>
     <li>Ссылка</li>
     <li>Ссылка</li>
     <li>Ссылка</li>
     <li>Ссылка</li>
</ul>


</body>

</html>

romanpan2 24.11.2014 19:05

Спасибо большое))) день провазился) не догадался так)

рони 24.11.2014 19:06

romanpan2,
jQuery(this).length == '2' -- вот сравнение, а у вас присвоение

romanpan2 24.11.2014 19:08

Ошибку понял)


Часовой пояс GMT +3, время: 23:39.