我想在前三个数据库对象中添加一个类,然后为4到6个对象添加另一个类,依此类推......
我找到了打破循环的方法,但我希望有更好的方法来完成三个串,而不是必须对很多循环进行硬编码?
我很感谢你的帮助!
这是我拥有的循环的基础:
var tableContent = '';
$.getJSON( '/users/insights', function( data ) {
userListData = data;
$.each(data, function(){
tableContent += '<ul>';
tableContent += '<li class="sub">' + this.date + '</li>';
tableContent += '</ul>';
});
答案 0 :(得分:3)
$.each()
方法使用其所属元素的索引来调用您的函数。因此,使用一点算术作为类名数组的索引:
var classes = ['class1', 'class2', 'class3', 'class4'];
$.getJSON( '/users/insights', function( data ) {
userListData = data;
$.each(data, function(i){
tableContent += '<ul>';
tableContent += '<li class="' + classes[Math.floor(i/3) % classes.length]
+ '">' + this.date + '</li>';
tableContent += '</ul>';
});
});
使用Math.floor(i/3)
可以为您提供3个小组。如果你有3个以上的小组,那么% classes.length
允许添加(这样你就不会超过数组的末尾)类,它只是从数组的开头重新开始使用类。)
答案 1 :(得分:0)
您可以使用一些辅助变量来创建它。
var tableContent = '';
var classIndex=-1;
$.getJSON( '/users/insights', function( data ) {
userListData = data;
$.each(data, function(index){
if(index % 3 == 0) classIndex++;
var css = classes[classIndex];
tableContent += '<ul>';
tableContent += '<li class="myClass' + classIndex + '">' + this.date + '</li>';
tableContent += '</ul>';
});
}