javascript
2011-09-16 29 views 0 likes 
0

我有一些循环和中断的问题。 我有一个数组n,当我达到第10个元素时,我必须做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个元素李并把它们放到UL。那么我想循环我的数组从第11个元素到第21个元素,再次从11到21的LI我想放入另一个UL。 这可能吗?

+2

offtopic:不要调用你的数组Array'。 – c69

+0

是的,我知道。举个例子 – rsboarder

+0

Upvoted?真的吗? –

回答

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>' 
    } 


} 
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') 
+0

好吧,我有奇怪的:http://imageshack.us/photo/my-images/14/unled1xp.png/ – rsboarder

+0

这真的很奇怪。你能否将代码复制到你的文章中,以便我们看到你到底在做什么? :-) – Matschie

+0

是的,贴:-) – rsboarder

0

肯定。将此添加到循环的顶部和底部。

if (k % 10 === 0) { 
    // do some work 
} 
相关问题