2011-03-21 4 views
2

Je suis coincé ... Encore une fois. Je dois ajouter un saut de ligne tous les 5 incréments en utilisant javaScript. Par exemplerupture de ligne Javascript après 5 incréments!

img1  img2   img3   img4  img5 
img6  img7   img8   img9  img10 

Voici ce à quoi je pensais.

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

Ok, je ne sais que ce n'est pas la pièce la plus structurée de code (donc je suis désolé), mais il est juste un échantillon. J'espère que cela a du sens. N'hésitez pas à poser plus de questions pour obtenir des éclaircissements.
Cheers,
Sam

Répondre

9

qui cassera après l'élément 6, 7, 8 (base zéro, il faut donc ajouter 1 pour obtenir le numéro de l'image) et ainsi de suite, car ils sont tous supérieur à 5. vous obtenez donc :

img1 img2 img3 img4 img5 img6 img7 
img8 
img9 
img10 

Vous devez remplacer:

if (i > 5) { 

avec:

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

de sorte qu'il se brise après l'élément 4 (img5), 9 (img10), 14 (img15) et ainsi de suite. Et, puisque vous avez demandé une explication, l'opérateur modulo vous donne le reste quand vous faites une division. Donc, 12 % 5 peut être travaillé comme ce qui reste quand vous divisez 12 par 5. 12/5 vous donne 10 avec un reste de 2, donc 12 % 5 est 2.

Le tableau suivant peut aider:

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 

Vous pouvez le voir à vélo à travers les valeurs {0, 1, 2, 3, 4} donc nous avons juste à choisir la valeur où vous souhaitez insérer les pauses (après 4, marqué par *).

+0

explication Greate, merci beaucoup. J'espère avoir assez de réputation pour vous voter. – sam

4

Ce faible technologie, mais il le fera:

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

Vous pouvez utiliser l'opérateur 'module', % au lieu de plus-que > dans votre cas chèque.

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

Vous êtes à la recherche de l'opérateur de module

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