Jquery each – 停止循环并返回对象

前端之家收集整理的这篇文章主要介绍了Jquery each – 停止循环并返回对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
可以有人告诉我为什么循环没有停止后5进入?
http://jsbin.com/ucuqot/edit#preview
  1. $(document).ready(function()
  2. {
  3. someArray = new Array();
  4. someArray[0] = 't5';
  5. someArray[1] = 'z12';
  6. someArray[2] = 'b88';
  7. someArray[3] = 's55';
  8. someArray[4] = 'e51';
  9. someArray[5] = 'o322';
  10. someArray[6] = 'i22';
  11. someArray[7] = 'k954';
  12.  
  13. var test = findXX('o322');
  14.  
  15. });
  16.  
  17. function findXX(word)
  18. {
  19. $.each(someArray,function(i)
  20. {
  21. $('body').append('-> '+i+'<br />');
  22. if(someArray[i] == 'someArray')
  23. {
  24. return someArray[i]; //<--- did not stop the loop!
  25. }
  26. });
  27. }

提前致谢!

解决方法

因为当你在每个循环中使用return语句时,一个“非假”值将作为一个continue,wheras false将作为一个break。您将需要从每个函数返回false。这样的东西:
  1. function findXX(word) {
  2. var toReturn;
  3. $.each(someArray,function(i) {
  4. $('body').append('-> '+i+'<br />');
  5. if(someArray[i] == word) {
  6. toReturn = someArray[i];
  7. return false;
  8. }
  9. });
  10. return toReturn;
  11. }

docs

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.

猜你在找的jQuery相关文章