2013-01-16 21 views
0

我在嘗試使代碼工作時遇到了麻煩。我真的沒有看到JavaScript的任何錯誤。當我調試時,我也沒有發現錯誤。使用jquery顯示覆雜的JSON。每個

<head> 
<style type="text/css"> 
</style> 
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$('#Presentation').click(function() { 
var jsonloc = "ppt.json"; 
     $.when($.getJSON(jsonloc)).then(function(info){ 
     $('#header').empty(); 
      $.each(info.slides, function(entryIndex, entry){ 
      var html = '<div class="info">';      
      html += '<h3>' + entry['title'] + '</h3>'; 
      html += '<div class="author">' + entry['author'] + '</div>';      
       if(entry['slides']){ 
        $.each(entry['slides'],function(slideIndex, slides){ 
         html += '<h3>' + slides['Slide'] + '<h3>';           
         html += '<div class="header">' + slides['header'] + '</div>';       
         }); 
       if(slides['Content']){ 
       html += '<div class="Content">';            
       html += '<ol>'; 
        $.each(slides['content'],function(contentIndex, content){ 
         html += '<li>' + content + '</li>';       
          }); 
         html += '</ol>';       
         html += '</div>';        
        };         
       $('#header').append(html); 
      };       
     }); 
     return false; 
    }); 
    }); 

}); 
</script> 
</head> 
<body> 

<a href="#" id="Presentation">ppt presentation</a> 
<div id="header"> 
</div> 
</body> 

這裏是JSON:

{ 
    "title": "presentation", 
    "date_created": "", 
    "last_modified": "", 
    "author": "By: Someone online", 
    "slides": [ 
     { 
      "Slide": "1", 
      "header": "first header", 
      "src": "ssss.jpg", 
      "Content": "dddddddddddddddddddddddddddddddddddd", 
      "Content": "dddddddddddddddddddddddddddddddddddd", 
      "Content": "dddddddddddddddddddddddddddddddddddd" 
     }, 
     { 
      "Slide2": "2", 
      "header2": "header 2", 
      "src2": null, 
      "Content": "dddddddddddddddddddddddddddddddddddd", 
      "Content": "dddddddddddddddddddddddddddddddddddd", 
      "Content": "dddddddddddddddddddddddddddddddddddd" 

     }, 
     { 
      "Slide3": "3", 
      "header3": "header3", 
      "src3": "sdfdsf.jpg", 
      "Content": "dddddddddddddddddddddddddddddddddddd", 
      "Content": "dddddddddddddddddddddddddddddddddddd", 
      "Content": "dddddddddddddddddddddddddddddddddddd" 
     } 
    ] 
} 

我真的想使這個工作,不想使用其他方法如jQuery的模板,。 有什麼跳出來的?

+1

我不認爲這是可能有相同的按鍵多次'json'文件,因爲你贏了無法檢索Content的值 – wakooka

+0

我正在嘗試不同的代碼和方法。我現在已經修復了JSON。 – swaggyP

+1

請編輯你的問題與相關的json – wakooka

回答

1

你太早關閉.each

$.each(entry['slides'],function(slideIndex, slides){ 
    html += '<h3>' + slides['Slide'] + '<h3>';           
    html += '<div class="header">' + slides['header'] + '</div>';       
}); 
if(slides['Content']){ 
// ... 

這樣,你只能訪問的slides['Content']的最後一個值。

你需要把該if它包含到你的循環是這樣的:

$.each(entry['slides'],function(slideIndex, slides){ 
    html += '<h3>' + slides['Slide'] + '<h3>';           
    html += '<div class="header">' + slides['header'] + '</div>';  
    if(slides['Content']){ 
    // ... 

}); 
+0

好吧,所以我糾正了,但仍然...沒有JSON顯示 – swaggyP

+0

也你的'JSON'搞砸了,爲什麼你有「幻燈片」,「幻燈片2」,「 Slide3「? – wakooka

+0

我正在嘗試JSON上的其他代碼,所以我一直在改變它。我現在糾正了它,但是,仍然沒有運氣。 – swaggyP