jquery从函数返回?

我试图理解从函数中返回jquery中的值的正确方法。 我已经检查了API以及其他问题,但我找不到正确的方法来执行此操作。 我想要的只是一个返回的简单变量,所以我可以将它设置为全局变量。 这是我得到的:

var a = 0, b, c; var imgArr = []; $(document).ready(function() { //populates array with images var smooth = popArr(); alert(smooth); } function popArr(){ $("#thumb_slider").children().each(function(index, element) { var newImg = $("").attr({ src: this.src, alt: 'space' }).addClass(index == 0 ? "left_slot" : (index == 1 ? "middle_slot" : "right_slot")); imgArr.push(newImg); return imgArr; // This comes back as undefined. }); } 

我的问题是为什么它返回undefined? 我甚至应该在Jquery中使用“return”吗?

你试图从.each回调中返回一些东西。 这个函数唯一有用的返回值是false可以提前取消“循环”。

只需在});之后移动你的return语句}); 一切都应该工作正常。

您还可以避免使用全局变量 – 您返回数组,因此无需将其设置为全局变量:

 function popArr() { var imgArr = []; $("#thumb_slider").children().each(function (index, element) { var newImg = $("").attr({ src: this.src, alt: 'space' }).addClass(index == 0 ? "left_slot" : (index == 1 ? "middle_slot" : "right_slot")); imgArr.push(newImg); }); return imgArr; } 

方法popArr()没有返回任何东西。 相反,它正在调用.each()

因为它是一个全局变量,只需将元素推入其中就足够了。