javascript - 使用 jquery $.each 从数组中的任何项目位置开始

标签 javascript jquery html for-loop

我可以使用 jquery $.each() 从数组中的第 3 项或任何其他项开始循环吗?还有$(elem).each() .我想要这两个例子。 #tableau<table> 的 ID在 HTML 中。 请参阅下面的代码:

var tableau = $('#tableau'), 
    tds = tableau.find('td'),
    tdLen = tds.length,
    superMarios = [
                    'Super Mario Bros', 
                    'Super Mario Bros 2', 
                    'Super Mario Bros 3', 
                    'Super Mario World',
                    'Super Mario World 2: Yoshi\'s Island',
                    'Super Mario Galaxy', 
                    'New Super Mario Bros Wii', 
                    'Super Mario Galaxy 2'
                 ],
    superMarioCollection = superMarios.length;

$.each(superMarios, function(i, val){
  console.log(i + ': ' + val);
  tds.eq(i).append(val);
});

非常感谢

最佳答案

除了 0 之外,您不能使用 $.each() 开始,但是您可以通过使用 if( ) 语句。

$.each(superMarios, function(i, val){
  if( i >= 2 ) {
      console.log(i + ': ' + val);
      tds.eq(i).append(val);
  }
});

或者如果你想从第三个开始,但你希望索引从 0 开始,那么只需取一个数组的 .slice(),给它是您要开始的从零开始的索引。

$.each(superMarios.slice( 2 ), function(i, val){
  console.log(i + ': ' + val);
  tds.eq(i).append(val);
});

或者作为第一个示例的替代方案,只需将 i 偏移与起点相同的量即可为您提供更高的起点索引:

var idx = 2;
$.each(superMarios.slice( idx ), function(i, val){
   console.log((i+idx) + ': ' + val);
   tds.eq(i+idx).append(val);
});

关于javascript - 使用 jquery $.each 从数组中的任何项目位置开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7207700/

相关文章:

javascript - Knockout.JS ,模板是通过表单没有添加任何数据

javascript - 使用 formHTML.append 将选项列表设置为在 java 中只读

html - Bootstrap 3 导航栏无响应

javascript - 文件上传作为表单工作正常,但作为 AJAX 查询返回 403

javascript - 如何使用 jQuery 触发类更改事件?

javascript - 运行 .each 循环以获取 div 内内容的值

javascript - 单击文本输入时清除单选按钮

javascript - 使用 AJAX 的下一页/上一页

javascript - 如何确定请求者是我的网络应用程序

javascript - 使用 Q 进行 promises 轮询