2011-03-21 20 views
2

我被卡住了....再一次。 我需要使用javaScript每5個增量後添加一個換行符。例如5行之後,Javascript行會中斷!

img1  img2   img3   img4  img5 
img6  img7   img8   img9  img10 

這是我在想什麼。

for (i = 0; i < blah.length; i++) { 
    imgholder.innerHTML += i; 
    if (i > 5) { 
     imgholder.innerHTML += '<br>'; 
    } 
} 

好吧,我不知道這是不是最結構化的代碼(所以我很抱歉),但它只是一個樣本。 希望它有道理。隨意提出更多問題進行澄清。
乾杯,
山姆

回答

9

這將元件6,7,8打破後(從零開始,所以加1得到的圖像數量)等等,因爲他們所有大於5。所以你會得到:

img1 img2 img3 img4 img5 img6 img7 
img8 
img9 
img10 

你需要更換:

if (i > 5) { 

有:

if ((i % 5) == 4) { 

以便它在元素4(img5),9(img10),14(img15)等之後中斷。

而且,由於您要求解釋,所以模分操作員會在您進行分區時爲您提供餘數。因此可以將12 % 5作爲當12除以5時遺留下來的結果。 12/5給出10,剩餘部分爲2,所以12 % 52

下表可以幫助:

i | i % 5 
-----+------ 
    0 | 0 
    1 | 1 
    2 | 2 
    3 | 3 
    4 | 4 * 
    5 | 0 
    6 | 1 
    7 | 2 
    8 | 3 
    9 | 4 * 
10 | 0 
11 | 1 
12 | 2 

你可以看到騎自行車經過的價值觀{0, 1, 2, 3, 4}所以我們只是要挑值要插入符(4,標有*後)。

+0

馬麗娟解釋,非常感謝。希望我有足夠的聲望來投票給你。 – sam 2011-03-21 02:19:40

4

這是技術含量低,但它會做:

if(i % 5 == 4) { 
    imgholder.innerHTML+='<br>'; 
} 
0

您可以使用「模」操作,%而不是大於>你如果檢查。

for(i=0;i<blah.length;i++) { 
    imgholder.innerHTML+=i; 
    if(0 == ((i+1)%5)) { 
     imgholder.innerHTML+='<br>'; 
    } 
    } 
0

您正在尋找的模運算

for(i=0;i<blah.length;i++){ 
    if((i+1) % 5 == 0){ 
    your br goes here 
    } 
}