循环数组属性和中断

时间:2011-09-16 12:30:50

标签: javascript

我在循环和中断方面遇到了一些问题。 当我达到第10个元素时,我有一个数组n我必须做smth。例如:

 $.each(videoDataList,function(k){      
        html = ''
        if(k % 10 == 0){
           html += (k == 0 ? "<ul>" : "</ul><ul>");
        }
        html += '<li class="item">'
        html += '<a href="#" id="vl_'+(k+1)+'">'
        html += '<span class="score_journalist" id="num_'+videoDataList[k].score_journalist+'">'+videoDataList[k].score_journalist+'</span>'
        html += '<img src="/files/preview/s/'+videoDataList[k].video_id+'.jpg" alt="" />'
        html += '<span class="rating clearfloat">'
        html += '<span class="votes"><span class="title">рейтинг:</span> <span class="count">'+videoDataList[k].score_user+'</span></span>'
        html += '</span>'
        html += '<span class="filter"></span>'
        html += '</a>'
        html += '<img src="/files/preview/b/'+videoDataList[k].video_id+'.jpg" alt="" class="big"/>'
        html += '</li>'
        if(k == videoDataList.length){
          html += "</ul>";
        }
        $(html).appendTo('#videoLists ul.list')
    })

我希望有10个元素LI并将它们放入UL。然后我想将我的数组从第11个元素循环到第21个元素,再次从11到21的LI我想要放入另一个UL。 有可能吗?

3 个答案:

答案 0 :(得分:1)

if(k % 10 == 0){
   html += (k == 0 ? "<ul>" : "</ul><ul>");
}

在for循环后输入此内容。

同样在for循环结束之前添加:

 if(k == Array.length){
  html += "</ul>";
}

这是你要找的东西吗?

整个代码:

html = ''   
$.each(videoDataList,function(k){           
    if(k % 10 == 0){            
       html += (k == 0 ? "<ul>" : "</ul><ul>");        
    }         
    html += '<li class="item">'         
    html += '<a href="#" id="vl_'+(k+1)+'">'         
    html += '<span class="score_journalist" id="num_'+videoDataList[k].score_journalist+'">'+videoDataList[k].score_journalist+'</span>'         
    html += '<img src="/files/preview/s/'+videoDataList[k].video_id+'.jpg" alt="" />'                 
    html += '<span class="rating clearfloat">'         
    html += '<span class="votes"><span class="title">рейтинг:</span> <span class="count">'+videoDataList[k].score_user+'</span></span>'         
    html += '</span>'         
    html += '<span class="filter"></span>'         
    html += '</a>'         
    html += '<img src="/files/preview/b/'+videoDataList[k].video_id+'.jpg" alt="" class="big"/>'         
    html += '</li>'         
    if(k == videoDataList.length){           
       html += "</ul>";         
    }            
})         
$(html).appendTo('#videoLists ul.list')  $(html).appendTo('#videoLists ul.list')  

答案 1 :(得分:1)

使用模运算符很容易:

for(k=0;k<=Array.length;k++){

    if(k % 10 == 0 || k == 0)
    {
       if(k > 0)
       {
           html += '</ul>'
       }
       html += '<ul>'
    }


    html += '<li class="item">'
    html += '<a href="#" id="vl_'+(k+1)+'">'
    html += '<span id="num_'+Array[k].prop1+'">'+Array[k].prop1+'</span>'
    html += '<img src="/files/preview/s/'+Array[k].prop2+'.jpg" alt="" />'
    html += '<span class="rating clearfloat">'
    html += '<span class="votes">'+Array[k].prop3+'</span>'
    html += '</span>'
    html += '<span class="filter"></span>'
    html += '</a>'
    html += '<img src="/files/preview/b/'+Array[k].prop4+'.jpg" alt="" class="big"/>'
    html += '</li>'

    if(k == Array.length)
    {
       html += '</ul>'
    }


}

答案 2 :(得分:0)

不确定。将其添加到循环的顶部和底部。

if (k % 10 === 0) {
    // do some work
}