例:
var t = $.each(templos_cache,function(f,g){ $.each(g.requer,function(h,j){ if (parseFloat(g.id) == id){ alert(j.nome); // OK,return 'afrodite'. return j.nome; // wrong,return [Object object]. } }); return ''; });
看看代码,我们可以看到问题…我可以做一个变量超出范围的集合,但我认为可以存在一些更优雅的方式来做到这一点.
解决方法
要突破$.each(),只需返回false;从回调函数.从
jQuery documentation引用:
We can break the $.each() loop at a
particular iteration by making the
callback function return false.
Returning non-false is the same as a
continue statement in a for loop; it
will skip immediately to the next
iteration.
编辑:
一旦意识到你可能想要返回一个值,你可以简单地将一个对象传递给回调函数,因为这是通过引用传递的.请参阅How to append a string value during assignment in Javascript? – 这根本不是任何更优雅的,所以我会坚持只是设置一个变量在$.each之外,因为colinmarc说.