jquery从函数返回?

Dig*_*ent 0 jquery return function

我试图理解从函数返回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 = $("<img />").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.

        });
    }
Run Code Online (Sandbox Code Playgroud)

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

Thi*_*ter 6

你试图从.each回调中返回一些东西.该函数唯一有用的返回值是false尽早取消"循环".

简单地移动你的return语句});,一切都应该正常.

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

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