JQuery或JavaScript是否有下一个语句/函数可以跳到循环的下一次迭代?

时间:2011-06-08 15:18:07

标签: javascript jquery loops next

我有这段代码,我希望next跳到下一次迭代。

$.each(result, function(key, value) {

    if (value.type == "individuel") {
    cform["IN"] = "checked";
    } else if (value.type == "course") {
    cform["CO"] = "checked";
    } else {

    next;

    }

    cform["ID"]     = key;
    cform["title"]  = value.title;

    $('#template').tmpl(cform).appendTo('#content');
});

next显然意味着与我期望的不同。

next退出$.each而不是跳过当前的键/值。

有没有像我期望的那样做next的方法?

5 个答案:

答案 0 :(得分:7)

由于jQuery的性质,无法在函数体中声明“next”。内部函数不知道它正在循环中执行,因此不会影响这个事实。

但你可以提早回来,这具有同样的效果:

$.each(result, function(key, value) {
  if (value.type == "individuel") {
    cform["IN"] = "checked";
  } else if (value.type == "course") {
    cform["CO"] = "checked";
  } else {
    return true;
  } 

  cform["ID"]     = key;
  cform["title"]  = value.title;
  $('#template').tmpl(cform).appendTo('#content');
});

我发现这更时尚:

$.each(result, function(key, value) {
  switch (value.type) {
    case "individuel": cform["IN"] = "checked"; break;
    case "course":     cform["CO"] = "checked"; break; 
    default: return true;
  }

  cform["ID"]     = key;
  cform["title"]  = value.title;
  $('#template').tmpl(cform).appendTo('#content');
});

答案 1 :(得分:6)

与其他构造不同,例如for..inwhile$.each不是语言构造。使用这些结构,您可以使用continue跳过当前元素,使用break离开循环。由于$.each采用回调函数,因此您需要使用回调的return值来影响接下来发生的事情。

返回true继续下一个项目;返回false以打破循环。

在这种情况下,您应该使用return true

else {
   return true; // skip to next element
}

答案 2 :(得分:3)

返回true;

来自文档:

  

我们可以在a处打破$ .each()循环   通过制作特定的迭代   回调函数返回false。   返回非假是与a相同   在for循环中继续声明;它   将立即跳到下一个   迭代。

jQuery.each

答案 3 :(得分:1)

使用if语句使下一个不必要。只需在if中执行任何操作,并忽略else。迭代会自动进行。

答案 4 :(得分:-1)

使用continue;跳转到循环中的下一次迭代。

编辑:是的,抱歉我发誓我在那里看到了一个循环:(你可以通过返回非假值来继续jQuery的每个(),你的案例会返回吗?