我有以下的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在循環後變爲空的,但其中有值。我究竟做錯了什麼?
你不是從回調返回任何東西,所以沒有什麼映射。你把所有的值都放到imgArr中。 imgAttrib.push會導致錯誤,因爲它未定義 – Shanimal
選擇器是什麼?我看到的直接問題是,您從不重新初始化imgArr,因此每次只覆蓋同一對象引用的屬性。 – AtheistP3ace
@Shanimal是對的。您可能應該只爲我們提供'each'或'forEach'。你真的不是真的在使用'map' – nem035