每5个循环中断循环

时间:2011-09-07 13:35:40

标签: jquery css json loops for-loop

我想在每个第5个循环中为我的HTML(列表项)添加一些简单的代码。

这是我的代码:

 if (jsonData != null && jsonData.length > 0){
     for (i=0;i<jsonData.length;i++){
         if( jsonData[i].name.length > 15 ) 
                 cname = jsonData[i].name.substr(0,15);
         else cname = jsonData[i].name ;
         resHTML += '<li><a title="'+ jsonData[i].name +'" href="'+ jsonData[i].link +'"><img width="137" height="175" alt="'+ jsonData[i].name +'" src="'+ jsonData[i].img +'"></a><br><a href="'+ jsonData[i].link +'">'+ cname +'</a></li>' ;

     }
 }

因此,对于每个第5个循环,<li>将变为<li style="margin-right:0">

有人能告诉我怎么做吗?

谢谢

5 个答案:

答案 0 :(得分:6)

if ((i % 5) == 0)
  // add your margin stuff

基本上,模数(i除以5的余数)每5次迭代为0

答案 1 :(得分:5)

您无需使用JavaScript处理此问题。

使用这个简单的CSS:

li + li {
    margin-left: 20px;
}

这会将margin-left应用于除第一个li之外的所有内容,这与将margin-right应用于除{0}}之外的所有li相同。

+adjacent sibling selector

答案 2 :(得分:1)

一种可能性是测试i % 5 == 0这将在循环的每5次迭代中评估为真。

代码:

for(i = 0; i < n; i++)
{
    if(!(i % 5))
    {
        //every fifth iteration!
    }
}

答案 3 :(得分:0)

我会......设置for(i = 1; i <= jsonData.length; i++)

然后做:

if((i % 5) == 0) { // margin code }

答案 4 :(得分:0)

if((i%5)==0)
   resHTML += "<li style=\"margin-right:0\">"
else
   restHTML += "<li>"
restHTML += "<add all other stuff after li >"