我想知道如何在javascript中计算for循环中的项目,
例如,我有一个包含12个值/对象的数组,我想将它们附加到html列表中,但是我想先将<hr>
标记放在每个<br>
之前,然后每隔四个var buttons = [ {"tag":"adr","color":"#123456"},
{"tag":"ag","color":"#123456"},
{"tag":"fax","color":"#123456"},
{"tag":"ind","color":"#123456"},
{"tag":"sname","color":"#123456"},
{"tag":"per","color":"#123456"},
{"tag":"tel","color":"#123456"},
{"tag":"url","color":"#123456"},
{"tag":"url","color":"#123456"},
{"tag":"weblink","color":"#123456"},
{"tag":"weblink","color":"#123456"},
{"tag":"close","color":"#123456"} ];
for (var i = 0; i < buttons.length; i++){
var tag = buttons[i].tag;
var color = buttons[i].color;
$(".list").append("<li>"+ tag + ", " + color +"</li>");
}
。
现在我正在使用:
{{1}}
它只是将对象中的项目附加到列表中。
可能很难描述我的意图,所以也许最好的方法是将jsfiddle链接放在左边列表是我当前的情况,右边是我想看的样子: http://jsfiddle.net/E6qR7/
到目前为止,我还没有找到任何类似的具体例子,最好的方法是什么?我需要以某种方式使用迭代器,检查他的循环或其他东西
答案 0 :(得分:7)
答案 1 :(得分:3)
其他很多答案都是正确的,但所需的最小表达式是:
if (i && !(i % 4))
{
$('.list').append('<hr>');
}
我注意到所有其他答案(包括我的上面)都没有生成有效的HTML,因此我建议使用样式代替并在LIs上注释类:
var buttons = [ {"tag":"adr","color":"#123456"},
{"tag":"ag","color":"#123456"},
{"tag":"fax","color":"#123456"},
{"tag":"ind","color":"#123456"},
{"tag":"sname","color":"#123456"},
{"tag":"per","color":"#123456"},
{"tag":"tel","color":"#123456"},
{"tag":"url","color":"#123456"},
{"tag":"url","color":"#123456"},
{"tag":"weblink","color":"#123456"},
{"tag":"weblink","color":"#123456"},
{"tag":"close","color":"#123456"} ];
for (var i = 0; i < buttons.length; i++){
var tag = buttons[i].tag;
var color = buttons[i].color;
var $li = $("<li></li>");
if (!(i % 4)) {
$li.addClass('line');
if (i){
$li.addClass('break');
}
}
$li.append(tag + ", " + color);
$(".list").append($li);
}
这也显示了创建元素和填充元素的不同方式(仅为了清晰起见)
答案 2 :(得分:2)
if(i % 4 == 0) {
$(".list").append("<hr />");
}
答案 3 :(得分:2)
使用javascript模数:
for (var i = 0; i < buttons.length; i++){
var tag = buttons[i].tag;
var color = buttons[i].color;
if (i % 4 == 0)
$(".list").append("<hr>");
$(".list").append("<li>"+ tag + ", " + color +"</li>");
}
我想你可以自己修改它以包含&lt; br&gt;标签;)
答案 4 :(得分:2)
这样的事情会起作用:
for (var i = 0; i < buttons.length; i++){
var tag = buttons[i].tag;
var color = buttons[i].color;
if ( i == 0 ) {
$(".list").append("<hr />");
}
else if ( i % 4 == 0 ) {
$(".list").append("<br /><hr />");
}
$(".list").append("<li>"+ tag + ", " + color +"</li>");
}
答案 5 :(得分:2)
你应该使用modulo(%)。
if (i%4==0) $(".list").append("<hr>");
if (i%4==3) $(".list").append("<br>");