我有以下代码:
$.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个人......”
我假设我需要在每个声明中使用一些计数器,但希望看到最好的方法来突破并显示剩余的文本。
答案 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 + "' /> ");
});