2015-11-03 114 views
0

我想创建一个动态数组并使用Javascript将元素推送到它。作为初学者,我遇到了问题。无法将元素动态添加到数组

P.S.我正在提取所有的值(使用console.log进行检查),唯一的问题是我无法将其放入数据库中。

下面是我的代码 -

(function makelist() { 
    var listHeaderData =[]; 
    var listChildData = []; 
    var listImagePath = []; 
    var nextPageRefLink = ['imageSlider.html','NewsItem_descp_1.html','http://www.yahoo.com']; 
    Parse.initialize("XN0sv3fBqB380fCpwohuHAgansghkiDp8MhbyJDs", "xzoETxUUxicHAtdwqbZh65XtTAFaona3a6cC9jSB"); 
    console.log("Parse Initailized inside javascript"); 
    var newsFeed = Parse.Object.extend("NewsFeed"); 
    var query = new Parse.Query(newsFeed); 
    query.find ({ 
     success: function(results) { 
      var output =""; 
      for(var i in results) { 
       //listHeaderData DATA 
       var heading = results[i].get("Heading"); 
       listHeaderData.push(heading); 
       console.log("Header : "+heading); 
       //listChildData DATA 
       var description = results[i].get("description"); 
       listChildData.push(description); 
       console.log("Description : "+description); 
       if(results[i].get("Image")) { 
        var file = results[i].get("Image"); 
        //listImagePath URL's 
        var url = file.url(); 
        listImagePath.push(url); 
        console.log("Image URL is:"+url); 
       } 
       console.log("Heading:"+heading); 
       console.log("Description:"+description); 
      } 
     } , error: function(error){ 
      console.log("Query error :"+error.message); 
     } 
    }); 
} 

的问题是什么是越来越添加到我上面定义的数组。我正在使用.push()函数。可能是什么问题?

+0

你最好使用'for(var i = 0; i Guy

+0

何时和/或何时遇到问题?究竟是什么问题? – frikinside

+0

@frikinside我更正了我的帖子。问题是没有增加到我上面定义的数组中。我正在使用.push()函数。 – TechFrk

回答

1

你在哪里使用这些list*变量?

如果您试图在query.find()之后立即访问listHeaderData,那么在query.find请求完成之后,您将永远不会获取数据,因为它稍后可用。这就是为什么你需要在success回调中的for循环之后检查这些数组。

+0

不,这不是问题。我有正确的我的帖子。问题是没有任何东西通过.push()函数添加到数组中。 – TechFrk

+0

你的'list *'变量存在于'makelist()'函数范围内,在响应到达query.find()调用后异步填充。你能告诉我你在哪里使用这些'list *'变量? –

+0

正确...在这段代码下面,我写了更多的代码,通过相同的脚本动态创建html元素。像这样:var spanTag = document.createElement(“span”); \t \t spanTag.setAttribute(“class”,“title”); \t \t spanTag.innerHTML = listHeaderData [i]; – TechFrk