javascript - 使用 jQuery/JS 将单个 <ul> 拆分为四个单独的 <ul>

标签 javascript jquery

我有一个<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 等)。

最佳答案

仅使用 CSS 的四列将是这样的

#genList li{
      width:22%;
      float:left;
      padding:0;
      margin:0;
    }

您也可以使用固定宽度..

关于javascript - 使用 jQuery/JS 将单个 <ul> 拆分为四个单独的 <ul>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18125741/

相关文章:

jQuery 假窗口调整大小

javascript - 将输入字段转换为数组并保存到本地存储

javascript - 使用 PageSpeed 消除 jQuery 的呈现阻塞 JavaScript

javascript - 简单来说,Tracker.autorun 是做什么的?

javascript - 显示一个元素...除非用户打开了 javascript,然后将其淡入漂亮且漂亮?

javascript - 数组合并和Json编码

php - 用于测量请求速度和数据库速度的工具

javascript - Angular 2 HTTP POST

javascript - 类型错误 : cannot read property 'method' of undefined in nodejs Application

javascript - jquery如何获取文件扩展名