javascript:在n个循环元素之后用div括起来的列表
我有一个由javascript的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]
循环生成的元素的长列表。起初我只有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
vsttllst
。这不会结束第一个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;