gpt4 book ai didi

javascript - 每次循环递增3后关闭再打开另一个div

转载 作者:太空狗 更新时间:2023-10-29 15:08:37 24 4
gpt4 key购买 nike

我有一个数组。我正在循环。首先,我需要的是,当循环第一次运行时,它应该已经打开一个 div 并向其中添加文本。接下来我希望如果循环运行了 3 次则关闭前一个 div 并打开一个新的 div。

代码:

var counter = 0;
for (var i = 0; i < tag_array.length; i++) {
counter++;
if (counter == 3) {
counter = 0;
document.write("</div>");
document.write("<div class='span6'>");
} else {
document.write("<div class='span6'>");
}
document.write("<div class='tag'>" + toTitleCase(tag_array[i]) + "</div>");
}

以上代码无效。我不知道为什么。请解释我做错了什么,我该如何解决?

最佳答案

when the loop is run first it should already open up a div and add text to it. Next I want that if a loop has run 3 times then close the previous div and open a new div.

你做错的原因是因为else { document.write("<div class='span6'>");}会导致document.write即使计数器为 2。

所以你应该把它改成else if(counter == 1) :

var counter = 0;
for (var i = 0; i < tag_array.length; i++) {
//this line indicates that the counter will only be either 1,2,3 when it enters the if statement
counter++;
if(counter == 3){
counter = 0;
document.write("</div>");
}else if(counter == 1){
document.write("<div class='span6'>");
}
document.write("<div class='tag'>" + toTitleCase(tag_array[i]) + "</div>");
}

为了让它看起来不那么困惑,您可以将 if 语句更改为 switch 语句,有 counter++;在 switch 语句中,将 for 语句变成 while 语句:

var counter = 0;
var i = 0;
var length = tag_array.length;
while (i <length) {
switch(counter){
case 2:
document.write("</div>");
//when counter reaches 2, set it back to 0 and leave the switch statement;
counter = 0;
break;
case 0:
document.write("<div class='span6'>");
case 1:
//counter++ will only be triggered when counter is 1 or 0;
counter++;
}
document.write("<div class='tag'>" + toTitleCase(tag_array[i]) + "</div>");
i++;
}

或者,如果您想提高效率,可以使用以下代码。 (受到 frenchie's answer 的启发。我将他的答案更正为一个正常工作的答案。如果你因为下面的代码而想投票或接受这个答案,请投票或接受 his 而不是。)

var a = '<div class="span6">';

var length = tag_array.length;

for (var i = 0; i < length; i++) {


a += '<div class="tag">' + toTitleCase(tag_array[i]) + '</div>';

if (i % 3 == 2) {

a += '</div><div class="span6">';
}

}

a += '</div>';

document.write(a);

关于javascript - 每次循环递增3后关闭再打开另一个div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com