2010-02-18 118 views
1

怎么了偷看的休息..jQuery的UL许多李项分隔到UL与李项

可以说,我有30项立

<ul class="column"> 
    <li>portfolio items 1</li> 
    <li>portfolio items 2</li> 
    ... 
    <li>portfolio items 29</li> 
    <li>portfolio items 30</li> 
</ul> 

我需要的jQuery采取了UL李项目从10到一个新的ul列,如果可能从20到第三列

所以如果我的ul列表有30个li项目,它将只有10个,并且与其余的li项目创建一个新的ul coumn。什么,我试图做

例子是我的投资组合 http://www.missionandromeda.com

我正在basicly迁移至WordPress和我必须有1个UL内的所有条目中。会很容易,如果我只有1列,但我的设计需要4 =/

谢谢! (;

+1

你真的需要的符咒,并在你的投资组合语法检查复印 – adamse 2010-02-18 13:48:25

+1

该投资组合目前的草案级别,我将解决语法问题。 不要称语法警察还好吗? (: – Nissan 2010-02-19 09:30:53

回答

0

试试这个它假定新的上行线路需要动态地创建

UPDATE:创建assignes类版本,并在所有不分配ID

$('document').ready(function() { 
    var i = 0; 
    var $newUL; 
    var $theColumn = $('.column'); 
    var length = $theColumn.children('li').length; 
    while(length > 10) { 
    $newUL = $('<ul class="' + $theColumn.attr('class') + '"></ul>'); 
    while(i < 10) { 
     $theColumn.children('li').eq(10).appendTo($newUL) 
     i++; 
     length--; 
    } 
    $('body').append($newUL); 
    i = 0; 
    } 
}); 

这里的另一种方式做到这一点(这一次的类名是硬编码的,但它并不需要是):

$(document).ready(function() { 
    var $newUL; 
    while($('.column:last').children('li').length > 10) { 
     $newUL = $('<ul class="column"></ul>'); 
     $('.column:last').children('li').slice(10).appendTo($newUL); 
     $newUL.appendTo('body'); 
    } 
}); 
+0

差不多完美, 我需要ul的创建className而不是id长度。 再次感谢 – Nissan 2010-02-20 06:25:12

+0

是的,我只是使用长度作为一个快速和简单的ID虽然我不知道你的意思*由className *创建如果你的意思是你需要他们与原来的课程相同,那很简单,我会更新我的答案,如果这不是你的意思,请告诉我。 – user113716 2010-02-20 12:12:10

+0

完美工作,再次感谢! – Nissan 2010-02-22 12:08:19