我有一个<ul>
动态生成的,在 8 到 25 <li
> 之间。
示例 HTML:
<ul id="genList">
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
<li>five</li>
<li>six</li>
<li>seven</li>
<li>eight</li>
</ul>
有没有办法把这个单子<ul>
分成四列?
到目前为止我有这个:
jQuery(function ($) {
var size = 4,
$ul = $("ul"),
$lis = $ul.children().filter(':gt(' + (size - 1) + ')'),
loop = Math.ceil($lis.length / size),
i = 0;
$ul.css('float', 'left').wrap("<div style='overflow: hidden'></div>");
for (; i < loop; i = i + 1) {
$ul = $("<ul />").css('float', 'left').append($lis.slice(i * size, (i * size) + 4)).insertAfter($ul);
}
});
这只是将它包装成第 4 列深。我需要<ul>
先将 4 分为四,然后将舍入的值传递给var size
.
编辑:需要支持 IE8 及更高版本并保持列表的垂直完整性(第一列:1、2 等)。