javascript - 创建内部元素有限的列表

标签 javascript jquery html

我需要创建一个 ul,里面有 5 里的限制。如果超过 5 个元素 - 创建具有相同限制的新 ul。等等等等。这是我的起点:

$(function(){
var $container = $('.container'),
		el = 5,
		i;  
	newUl = $('<ul />')
		for(i=0; i < el; i++){
			$container.append(newUl)
			$('<li />', { html : i }).appendTo(newUl)			
		}
})
* {
  box-sizing: border-box;
}

body {
  background: #f2f2f2;
}

.wrapper {
  display: table;
  margin: 0 auto;
  padding: 10px;
  max-width: 600px;
  width: 100%;
  height: 100vh;
  border: 2px solid rgba(0, 0, 0, 0.2);
}
.wrapper .container {
  display: table-cell;
  vertical-align: bottom;
}
.wrapper ul {
  background: #c0c0c0;
  border: 1px solid #333;
  font-size: 0;
}
.wrapper ul:nth-of-type(odd) {
  direction: rtl;
}
.wrapper ul li {
  display: inline-block;
  font-size: 16px;
  width: 20%;
  padding: 10px;
  border: 1px solid #333;
  text-align: center;
  direction: rtl;
}

.status {
  position: fixed;
  left: 0;
  top: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper"> 
	<div class="container"> 
		
	</div>
</div>
<div class="status"></div>

有什么建议如何做到这一点?

最佳答案

您可以使用模数运算符 % 来确定何时达到最大值,然后您需要为新的 ul 创建一个新的 jQuery,并附加它。

$(function(){
  var $container = $('.container'),
   el = 10,
   max = 5,
   i;  
  var newUl;
  for(i=0; i < el; i++){
   if(i%max==0) {
     newUl = $('<ul/>');
     $container.append(newUl);
   }
   $('<li />', { html : i }).appendTo(newUl)			
  }
});
* {
  box-sizing: border-box;
}

body {
  background: #f2f2f2;
}

.wrapper {
  display: table;
  margin: 0 auto;
  padding: 10px;
  max-width: 600px;
  width: 100%;
  height: 100vh;
  border: 2px solid rgba(0, 0, 0, 0.2);
}
.wrapper .container {
  display: table-cell;
  vertical-align: bottom;
}
.wrapper ul {
  background: #c0c0c0;
  border: 1px solid #333;
  font-size: 0;
}
.wrapper ul:nth-of-type(odd) {
  direction: rtl;
}
.wrapper ul li {
  display: inline-block;
  font-size: 16px;
  width: 20%;
  padding: 10px;
  border: 1px solid #333;
  text-align: center;
  direction: rtl;
}

.status {
  position: fixed;
  left: 0;
  top: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper"> 
	<div class="container"> 
		
	</div>
</div>
<div class="status"></div>

关于javascript - 创建内部元素有限的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755634/

相关文章:

javascript - jQuery.datepicker.formatDate 和时区偏移量

javascript - 使用 SDL2 (emscripten) 的未知类型名称 "SDL_RendererFlip"

javascript - 限制可以通过使用传单单击创建的标记数量

javascript - 创建一个改变网站调色板的开关

javascript - 下拉菜单与其他导航项重叠

javascript - 在另一个可观察值之后使用 fork join 的更好方法

javascript - 鼠标事件中button和which的区别

jquery - 如何在不使用固定宽度的情况下使内部 DIV 随外部 DIV 的滚动位置移动

javascript - 如何为 Ionic 中的每个图像加载添加一个微调器

javascript - 如何使用 jquery 使用 name 属性解析远程页面中的图像?