Показать сообщение отдельно
  #21 (permalink)  
Старый 31.05.2010, 12:33
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

$('ul.menu').each(function(){ 
	var li = $('li',this), length = Math.ceil(li.length / 4), i = 0, uls = $('<div></div>');

	for(; i < length; i++){
		$('<ul class="menu"></ul>').append(li.filter(':gt(' + (i*4-1) + ')').filter(':lt(' + (i+1)*4 + ')')).appendTo(uls); 
	}
	$(this).replaceWith(uls.children());
});
Или элегантней, но не оптимально:
$('ul.menu').each(function(){ 
	var i = Math.ceil($('li',this).length / 4), uls = $('<div></div>');

	while(i--) $('<ul class="menu"></ul>').append($('li',this).filter(':lt(4)')).appendTo(uls); 
	$(this).replaceWith(uls.children());
});
Ответить с цитированием