0

ちょっと私は出力をループして表示しようとしているjson_encodeを持っていますが、それは機能していません、私は出力を取得しません= /

これは私の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/>';

    }​
4

3 に答える 3

3

あなたは常にdocument.write関数を上書きしていて、実際にそれを呼び出すことは決してありません。

document.write("test");

それが使用されることになっている方法です。

于 2012-05-22T18:38:47.020 に答える
1

非常に多くのdocument.writeはかなり遅いです。オブジェクトを解析した後、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(''));
于 2012-05-22T18:53:59.647 に答える
0

document.write 関数です

使用する

document.write('test');

それ以外の

 document.write = 'test';

http://jsfiddle.net/Z4jTc/2/を参照してください

于 2012-05-22T18:42:29.470 に答える