jquery变量不显示每个循环的值

时间:2015-11-19 17:06:01

标签: javascript jquery

我有以下jquery代码:

var imgArr = {};
var imgAttrib = $(selector).map(function() {
    imgArr.src = $(this).attr('src');
    imgArr.id = $(this).attr('id');
    imgArr.height = $(this).attr('height');
    imgArr.width = $(this).attr('width');
    //console.log(imgArr);
    imgAttrib.push(imgArr);
    console.log("imageAttrib is ");
    console.log(imgAttrib);
});
console.log("FINAL imageAttrib is ");
console.log(imgAttrib);

当我检查我的控制台时,控制台会在每次迭代时打印:

imageAttrib is:
[Object{src="some_url",id="123"...]

然而,在循环之后它会打印出来:

FINAL imageAttrib is:
Object[]

正如您所看到的,imageAttrib在循环后变为空,但在其中具有值。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您永远不会return - 并且您使用.map有点不对 - 这是修改后的版本:

var imgAttrib = $(selector).map(function() {
    return {
        src: this.src,
        id: this.id,
        height: $(this).attr('height'),
        width: $(this).attr('width')
    }
}).get();