2012-10-30 19 views
10

Próbuję uzyskać <div class="clear"></div> pojawiać się po co trzeciej iteracji pętli for w jquery. Wiem, że w PHP można to osiągnąć poprzez if($i%3 == 0), ale jak to zrobić w jquery/javascript?Jquery dla pętli pisać html po co trzeciej iteracji pętli

Oto mój pętli for:

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]); 
} 

Teraz ta działa tylko raz od pętli będzie tylko do liczby 3 raz. Więc wszelkie myśli o tym, jak wykonać tę samą koncepcję php w jquery? Widziałem inne pytania dotyczące pakowania co nth w div, ale po prostu muszę napisać html div po każdym z nich.

Z góry dziękuję.

EDIT:

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

Czy answer..I nie wiedział, że można zrobić. Dzięki!

+0

Dlaczego nie można użyć tej samej logiki tutaj? – thatidiotguy

+0

Czy próbowałeś tego, co zrobiłeś w PHP z JavaScript? Możesz być zaskoczony. – epascarello

+1

Operator '%' modulus nadal istnieje: http://stackoverflow.com/questions/2821006/find-if-variable-is-divisible-by-2 –

Odpowiedz

16

Zamiast tego należy użyć operatora modulacji.

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

Gdy nie ma reszta, jesteś podzielny przez 3.

Dołączyłem i &&, aby wyeliminować pierwszą iterację od 0 % 3 === 0; // true.

+0

Przysięgam, że już wypróbowałem metodę php, a ona nie pracuj. dzięki! –

+0

Nie ma za co. –

1

Użyj tego ... Tak jak twój PHP

if (i % 3 == 0)