2013-05-11 49 views
0

在下面的代碼中,「map」和「for」是如何完成的?首先獲取所有唯一的ID,然後我試圖將變量從幾個「each」組合在一起,然後在ajax中使用它。如何使用「each」和「for」是否正確?

的Jquery:

$(document).ready(function() { 
    $('a#export').on('click',function(){ 
     var contentMap = {}; 
     $('[id^="textHolder"],[id^="imgHolder"]').each(function(){ 
      contentMap[this.id] = $(this).html(); 
     }); 
     $('[id^="youtubeHolder"]').each(function(){ 
      var YoutubeSrc = $('iframe',this).attr('src'); 
      var YoutubeHolderID = $(this).attr('id'); 
     }); 
     for(id in contentMap) { 

      $.ajax({ 
       url: "post.php", 
       type: "post", 
       data: { 
        ExportDivID: id, 
        ExportDivContent: contentMap[id], 
        ExportYoutubeSrc: YoutubeSrc, 
        ExportYoutubeHolderID: YoutubeHolderID 
       }, 
       success: function(){ 
        alert("success"); 
       }, 
       error: function(){ 
        alert("failure"); 
       } 
      }); 
     } 

    }); 
}); 

感謝任何幫助!

回答

0

for循環解釋說:
Loop through an array in JavaScript

地圖解釋說:
How to create a hash or dictionary object in JavaScript

變化

for(id in contentMap) { .... } 

for (var i=0; i<contentMap.length; i++){ 

    if (contentMap[i] == this.id){ 

      $.ajax({ 
       url: "post.php", 
       type: "post", 
       data: { 
        ExportDivID: this.id, 
        ExportDivContent: contentMap[this.id], 
        ExportYoutubeSrc: YoutubeSrc, 
        ExportYoutubeHolderID: YoutubeHolderID 
       }, 
       success: function(){ 
        alert("success"); 
       }, 
       error: function(){ 
        alert("failure"); 
       } 
      }); 
    } 
} 
+0

謝謝!但不幸的是,我沒有得到它的工作 – Kim 2013-05-12 12:24:19

+0

今天我花了更多的時間,但除了發現一個更多的語法問題在這裏:$('iframe',this).attr('src'); ..應該是:$('iframe')。attr('src'),我無法提供更多幫助。抱歉。 – carrabino 2013-05-12 15:09:52