【问题标题】:Jquery for loop write html after every third iteration of loopJquery for loop 在每第三次循环迭代后写入 html
【发布时间】:2012-10-20 03:25:36
【问题描述】:

我试图让<div class="clear"></div> 在 jquery 中的 for 循环的每第三次迭代之后出现。我知道在 PHP 中它可以通过 if($i%3 == 0) 来完成,但是如何在 jquery/javascript 中完成呢?

这是我的 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]);
}

现在这只工作一次,因为循环只会到达数字 3 一次。那么关于如何使相同的 php 概念在 jquery 中工作的任何想法?我已经看到了关于将每个 nth 包装在 div 中的其他问题,但我只需要在每个 div 之后编写一个 div 的 html。

提前致谢。

编辑:

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

是答案..我不知道你能做到这一点。谢谢!

【问题讨论】:

  • 这里为什么不能用同样的逻辑?
  • 您是否尝试过在 PHP 中使用 JavaScript 所做的事情?你可能会感到惊讶。
  • '%' 模运算符仍然存在:*.com/questions/2821006/…

标签: javascript jquery html loops


【解决方案1】:

请改用模数运算符。

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

只要没有余数,你就可以被3整除。

我包含了i &amp;&amp; 以消除自0 % 3 === 0; // true 以来的第一次迭代。

【讨论】:

  • 我发誓我已经尝试过 php 方法,但它不起作用..woops。谢谢!
【解决方案2】:

使用这个...就像你的 PHP 一样

if (i % 3 == 0 ) 

【讨论】: