2015-04-23 195 views
0

我試圖循環遍歷一些項目,並創建一個數組。每個循環都應該是數組中的一個新項目,但我遇到了一些問題。似乎只有一組項目被添加,而不是多個。用循環填充對象數組

我試過下面的代碼。請幫我解決它。

function OpenPopup3(src,type,title){ 

var myData = []; 
rows.each(function(index) { 
    var temp_obj = {}; 
    temp_obj["src"] = $this.find('.elementOne').text(), 
    temp_obj["type"] = $this.find('.elementTwo').text(), 
    temp_obj["title"] = $this.find('.elementThree').text() 
    myData.push(temp_obj); 
}); 

$.magnificPopup.open({ 
    key: 'my-popup', 
    items: myData, 
    type: 'inline', 
    inline: { markup: '<div class=""><div class="mfp-close"></div>'+'<img class="mfp-src">'+'<div class="mfp-title"></div>'+'</div>' }, 
    gallery: { enabled: true } 
}); 
} 

其實我要的是如下:

{ 
    src: "/googleimages/123/a.png", 
    type: "Stuff", 
    title: "Title1" 
}, 
{ 
    src: "/googleimages/123/b.png", 
    type: "Stuff", 
    title: "Title2" 
}, 
{ 
    src: "/googleimages/123/c.png", 
    type: "Stuff", 
    title: "Title3" 
} 
+0

你試圖使用;而不是$ this.find('。elementTwo')。text() – SolidSnake

+1

你在哪裏聲明你正在循環的行變量?我相信它可能只有一個元素。 – Marquizzo

+0

你想要做的是創建一個對象數組。這與JSON無關。 JSON是**數據格式**,就像XML或CSV一樣。 –

回答

0

首先是什麼rows變量包含哪些內容?似乎沒有在任何地方宣佈。

第二你有語法錯誤:

temp_obj["src"] = $(this).find('.elementOne').text(); 
temp_obj["type"] = $(this).find('.elementTwo').text(); 
temp_obj["title"] = $(this).find('.elementThree').text(); 
+0

代碼中沒有語法錯誤。總的來說,這似乎更像是一條評論。 –