循环json编码数据

时间:2012-05-22 18:37:11

标签: javascript

嘿,我有一个json_encode,我试图循环并显示输出但它不工作,我没有输出= /

这是我的小提琴: 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/>';

    }​

3 个答案:

答案 0 :(得分:3)

你不断覆盖document.write函数,你实际上从未调用它。

document.write("test");

应该如何使用。

答案 1 :(得分:1)

这么多的document.write很慢。解析对象后,您可以在一个调用中执行此操作:

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(''));

答案 2 :(得分:0)

document.write是一个函数

使用

document.write('test');

而不是

 document.write = 'test';

请参阅http://jsfiddle.net/Z4jTc/2/