从第8次迭代开始的jQuery启动/停止循环

时间:2015-08-10 07:32:02

标签: jquery loops for-loop iteration each

我在两个不同的应用程序上运行一个类似的脚本,我需要声明在第一个脚本的循环的第8次迭代时停止,对于第二个脚本我需要它在循环的第8次迭代时启动。关于如何修复代码的任何想法。下面显示了所有迭代内容的脚本:

var counter = 0;

 $.each(datasource, function(index) {
 counter++;
 // menu items
 var $menu = $menuContainer.clone();
 $menu.html('<div>' + counter + '</div> ');
 $('.menu-item-container').append($menu);
});

1 个答案:

答案 0 :(得分:0)

我需要声明在第一个脚本的循环的第8次迭代时停止

为此,您可以使用 return 在第8次迭代时停止它,但如果script1正在使用它,您还需要一些标识符,例如var $script = 1;

var counter = 0;
var $script = 1; // update this number as per your call like 1 for first script 
                 // and 2 for second script.
$.each(datasource, function(index) {

    counter++;
    if($script == 2 && counter !== 8){
      continue;
    }
    // menu items
    var $menu = $menuContainer.clone();
    $menu.html('<div>' + counter + '</div> ');
    $('.menu-item-container').append($menu);

   if($script == 1 && counter <= 8){
     break;
   }
});

示例代码如下:

&#13;
&#13;
var arr = [1, 2, 3, 4, 5];

for(var i = 0; i <= arr.length; i++){

  if(i !== 3){
   continue;
  }
  
  console.log('use of "continue":', arr[i]);
    console.log('==========================================================');
}

for(var i = 0; i <= arr.length; i++){

  if(i === 3){
   break;
  }
  
  console.log('use of "break":', arr[i]);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;