Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как обрамить несколько элементов в ul (https://javascript.ru/forum/jquery/9664-kak-obramit-neskolko-ehlementov-v-ul.html)

B@rmaley.e><e 31.05.2010 12:33

$('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());
});

Alexxx 31.05.2010 15:17

Спасибо! Сравнив со своими потугами, понял, что пытался делать проще, но не получил бы рабочего кода.


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