2012-10-30 3 views
10

Ich versuche, eine <div class="clear"></div> nach jeder dritten Wiederholung einer for-Schleife in jquery zu erhalten. Ich weiß in PHP kann es über if($i%3 == 0) erreicht werden, aber wie macht man es in jquery/javascript? HierJquery für Schleife schreibe HTML nach jeder dritten Wiederholung der Schleife

ist meine for-Schleife:

var data = $.parseJSON(result); 
for(i=0;i<data.length;i++){ 
    if(i/3 == 1){ 
     $('#add_product_preview_area').append('<div class="clear"></div>'); 
    } 
    $('#add_product_preview_area').append(data[i]); 
} 

Jetzt nur das funktioniert einmal, da die Schleife nur auf die Nummer 3 einmal bekommen. Also irgendwelche Gedanken darüber, wie man das gleiche PHP-Konzept in jQuery funktioniert? Ich habe die anderen Fragen über das Umschließen jedes nth in einem div gesehen, aber ich muss nur die html eines div nach jedem schreiben.

Vielen Dank im Voraus.

EDIT:

if (i && (i % 3 === 0)) { 

Ist answer..I wusste nicht, dass Sie das tun können. Vielen Dank!

+0

Warum können Sie nicht die gleiche Logik verwenden hier? – thatidiotguy

+0

Haben Sie versucht, was Sie in PHP mit JavaScript gemacht haben? Sie könnten überrascht sein. – epascarello

+1

Der '%' Moduloperator existiert noch: http://stackoverflow.com/questions/2821006/find-if-variable-is-divisible-by-2 –

Antwort

16

Verwenden Sie stattdessen den Modulo-Operator.

if (i && (i % 3 === 0)) { ... 

Immer, wenn es keinen Rest, sind Sie gleichmäßig durch 3 teilbar.

Ich schloss die i && ein, um die erste Iteration seit 0 % 3 === 0; // true zu beseitigen.

+0

Ich schwöre, ich hatte bereits versucht, die PHP-Methode und es nicht arbeiten..woops. Vielen Dank! –

+0

Gern geschehen. –

1

verwenden ... genau wie die PHP

if (i % 3 == 0) 
Verwandte Themen