Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Назначение классов для пунктов меню (https://javascript.ru/forum/jquery/15421-naznachenie-klassov-dlya-punktov-menyu.html)

AkeLLbl4 26.02.2011 12:15

Назначение классов для пунктов меню
 
Имеем меню:
<ul class="menu">
  <li class=""><a href="#">Первый</a></li>
  <li class=""><a href="#">Второй</a></li>
  <li class=""><a href="#">Третий</a></li>
</ul>

Подскажите как правильно перебрать пункты в цикле, чтобы назначить каждому пункту (li) свой класс.
На выходе хотелось бы получить это:
<ul class="menu">
  <li class="item-1"><a href="#">Первый</a></li>
  <li class="item-2"><a href="#">Второй</a></li>
  <li class="item-3"><a href="#">Третий</a></li>
</ul>

Знаю что нужно делать так:
jQuery(".menu li").addClass('item-'+i)

Но вот как построить цикл чтобы перебирались пункты, непойму.

monolithed 26.02.2011 12:55

$(function() {
    $('ul.menu a').each(function(i) { //ul.menu li > a
        $(this).addClass('item-'+i);
    });
});

или так:
$(function() {
    var $item = $('ul.menu a'), $i = $item.length;

    while($i--) {
        $item.eq($i).addClass('item-'+$i);
    }
});

AkeLLbl4 26.02.2011 14:02

Спасибо, очень помогли!
В итоге получилось, так:
jQuery(document).ready(function() {
			var menuItem = jQuery("#sidebar .menu li");
			menuItem.removeClass();
			menuItem.each(function(i) {
				i++;
				jQuery(this).addClass('item-'+i);
			});
		});


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