打破.each()jquery语句的最佳方法是什么?

时间:2011-12-29 18:36:04

标签: javascript jquery arrays each

我有以下代码:

$.each(data.People, function (i, person) {
   html.push("<img title='" + person.Name + "' height='45' width='45' src='" + person.Picture + "' /> ");
        });

我想更改此代码,所以如果数组(data.People)有超过20个人,它将执行上面为前20个人做的事情然后只显示文字说“X”更多的人..例如,如果阵列有100个人,它会显示前20个,然后只说“80个人......”

我假设我需要在每个声明中使用一些计数器,但希望看到最好的方法来突破并显示剩余的文本。

2 个答案:

答案 0 :(得分:14)

return false在jQuery中与each循环中断,就像在break循环中的for一样。 return true就像continue

对于X部分,您需要对集合的length进行迭代,因为each不会提供该信息。

所以,在你的情况下:

$.each(data.People, function (i, person) {
   if (i == 20) {
     html.push("<p>" + (data.People.length - i) + " more people...</p>");
     return false;
   }
   html.push("<img title='" + person.Name + "' height='45' width='45' src='" + person.Picture + "' /> ");
});

答案 1 :(得分:7)

您的代码中的计数器为i。当i == 20时,您需要做的就是return false来终止每个。

$.each(data.People, function (i, person) {
  if (i == 20) { return false; }
  html.push("<img title='" + person.Name + "' height='45' width='45' src='" + person.Picture + "' /> ");
});