Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:在n个循环元素之后用div括起来的列表_Javascript_Css - Fatal编程技术网

javascript:在n个循环元素之后用div括起来的列表

javascript:在n个循环元素之后用div括起来的列表,javascript,css,Javascript,Css,我有一个由javascript的循环生成的元素的长列表。起初我只有4-5个元素,一切正常,但现在我有30多个元素,列表很长。我打算在span或div中包含5个元素,这样我可以将其向左浮动,并将列表堆叠为列,但由于关闭标记,我无法使其工作 var ttllist=""; for(i=0;i<x.length;i++) { if(i%5==0) { ttllst +='<span style="float:left">'; } ttllst += x[i]

我有一个由javascript的
循环生成的元素的长列表。起初我只有4-5个元素,一切正常,但现在我有30多个元素,列表很长。我打算在
span
div
中包含5个元素,这样我可以将其向左浮动,并将列表堆叠为列,但由于关闭标记,我无法使其工作

var ttllist="";
for(i=0;i<x.length;i++)
{
  if(i%5==0)
  {
     ttllst +='<span style="float:left">';
  }
  ttllst += x[i]+'<br/>';
//How to close the span tags accurately ???
}
return ttllist;
var ttllist=“”;

对于(i=0;i,如果索引大于5,您可以在开始新标记之前关闭
span
标记。此外,您还应该在退出循环的最后关闭标记

var ttllst="";
for(i=0;i<x.length;i++)
{
  if(i%5==0)
  {
     if(i>0) {
       ttllst += '</span>';
     }
     ttllst +='<span style="float:left">';
  }
  ttllst += x[i]+'<br/>';
}
if (x.length > 0) {
  ttllst += '</span>';
}
return ttllst;
var ttllst=”“;
对于(i=0;i0){
ttllst+='';
}
ttllst+='';
}
ttllst+=x[i]+'
'; } 如果(x.length>0){ ttllst+=''; } 返回ttllst;

这是一个基本的例子,您可能需要进一步的逻辑来涵盖其他可能发生的情况,但希望这会有所帮助。

这应该会起作用。我已经添加了一些注释来解释逻辑

var ttllist="";
for(i=0; i<x.length; i++) {
    if(i%5 == 0) {
        // if first item, don't close span
        if(i > 0) ttllst += '</span>'; 
        // if more to come, open new span
        if(i < x.length - 1) ttllst +='<span style="float:left">'; 
    }
    ttllst += x[i] + '<br/>';
    // if no more items to come, close last opened span
    if(i == x.length - 1) ttllst += '</span>'; 
}
return ttllist;
var ttllist=“”;
用于(i=0;i
//函数)渲染一个块
函数renderBlock(块){
var out='';
out+='';
用于(块中的变量j)
out+=块[j]+“
”; out+=''; 返回; } var blocks=[],//存储块的数组 size=5;//一个块中的项目 //将阵列拆分为块 而(x.length>0) 块。推(x拼接(0,尺寸)); //渲染输出 var ttllist=''; 用于(以块为单位的变量i) ttllist+=renderBlock(块[i]); 返回TTL列表;
你能为它创建一个提琴吗?…这是一个链接,你可能在这里有一个输入错误-
ttllist
vs
ttllst
。这不会结束第一个
span
i>5
条件是错误的。谢谢,为了简单起见接受它。你还编辑了答案以使其正确。
// function to render one block
function renderBlock(block) {
  var out = '';
  out += '<span style="float:left">';
  for(var j in block)
    out += block[j] + "<br/>";
  out += '</span>';    
  return out;
}     

var blocks = [],  // array to store blocks
    size = 5;     // items in one block

// split array into blocks 
while (x.length > 0)
    blocks.push(x.splice(0, size));

// render output
var ttllist = '';
for(var i in blocks) 
  ttllist += renderBlock(blocks[i]);
return ttlist;