2012-05-22 24 views
0

嘿我有我嘗試循環和顯示輸出,但它不工作一個json_encode,我沒有得到任何輸出=/環流式json_encoded數據

這是我JS提琴: http://jsfiddle.net/Z4jTc/1/

可不可以有一個人解釋爲什麼它不會循環?

代碼:

var messages = {"1":["2","1","0000-00-00 00:00:00","testing once"],"2":["2","1","0000-00-00 00:00:00","testing twice :)"]}; 

    for(var id in messages){ 

      var read = messages[id][0]; 
      var from = messages[id][1]; 
      var sent_on = messages[id][2]; 
      var content = messages[id][3]; 

      document.write = 'test'; 
      document.write = '<div class="message_info">'; 
      document.write = '<b>From:</b> '+from+'<br/><br/>'; 
      document.write = '<b>Sent On:</b> '+sent_on; 
      document.write = '</div><div class="message_content">'; 
      document.write = content; 
      document.write = '</div> <br/><br/>'; 

    }​ 
+0

有一個的jsfiddle使得它容易得多分析問題。做得好! –

回答

1

這麼多文件撰寫的很慢。你可以做到這一點在一個叫你解析對象後:

var messages = {"1":["2","1","0000-00-00 00:00:00","testing once"],"2":["2","1","0000-00-00 00:00:00","testing twice :)"]}; 
var output = []; 
for(var id in messages){ 

    var read = messages[id][0]; 
    var from = messages[id][1]; 
    var sent_on = messages[id][2]; 
    var content = messages[id][3]; 

    output.push('test'); 
    output.push('<div class="message_info">'); 
    output.push('<b>From:</b> '+from+'<br/><br/>'); 
    output.push('<b>Sent On:</b> '+sent_on); 
    output.push('</div><div class="message_content">'); 
    output.push(content); 
    output.push('</div> <br/><br/>'); 
}​ 

document.write(output.join('')); 

...或者放置在頁面上的容器輸出...

document.getElementById('destinationContainer').innerHTML(ouput.join('')); 
+0

我得到這個錯誤:在賦值中無效的左側 – Sir

+0

錯誤發生在哪一行? –

+1

oops ...一直使用Jquery太多。該行應該是: document.getElementById(「destinationContainer」)。innerHTML = output.join(「」); 這是一個小提琴:http://jsfiddle.net/GoofyDawg/6N89H/ –

3

你都在不斷改寫document.write功能,你從來沒有真正調用它。

document.write("test"); 

是它應該如何使用。

+0

它必須是「」還是我可以使用單引號?你是否也意味着我不能多次使用文檔寫入,因此它必須在一個文檔中寫入? – Sir

+0

您可以使用單引號,重要的是圓括號而不是'='。 –

+0

@Dave任何引號都可以。您可以多次調用它,請參閱http://jsfiddle.net/Z4jTc/2/。但是,如果在文檔加載完成後再次調用它,它將完全替換文檔內容。目前沒有人真的使用'document.write',除了調試。堅持使用'innerHTML'作爲你想要創建內容的節點 –