2

これを使用すると、改行文字が削除されます

HTMLをレンダリングするこれに代わるものはありますか?

 function viewCommentToggle( comment )
{
    theRow = document.getElementById("id"+comment.id);

    idx = 2;


        // Comment field
        cell = theRow.cells[idx];
        while( cell.childNodes.length > 0 ) cell.removeChild(cell.childNodes[0]);

            element = document.createTextNode(comment.comment);

        cell.appendChild(element);


         }

これは私が懸念したことです:

element = document.createTextNode(comment.comment);

参考までに....これは私がやったことであり、うまくいきました:

    function viewCommentToggle( comment )
{
    theRow = document.getElementById("id"+comment.id);

    idx = 2;


        // Comment field
        //cell = theRow.cells[idx];
        // while( cell.childNodes.length > 0 ) cell.removeChild(cell.childNodes[0]);

        cell = $("#id"+comment.id+" > td:eq("+idx+")");
        $(cell).empty();

        $(cell).html( comment.comment == null ? "" : comment.comment.replace(/\n/g,"<br/>").replace(/\r/g,"") ); 
4

1 に答える 1

8

改行はブロック内でのみ重要です(AFAIK)<pre>

それ以外では、改行を強制するには、文字列を別々の行に分割してから、テキストノードを作成し、その後<br/>にそれぞれにaを付ける必要があります。つまり、次のようになります。

var lines = text.split('\n');
var parent = document.body; // the node you want to insert the string into
for (var i = 0; i < lines.length; ++i) {
    parent.appendChild(document.createTextNode(lines[i]));
    parent.appendChild(document.createElement('br'));
}

http://jsfiddle.net/alnitak/WFTD6/を参照してください

于 2012-04-18T15:37:21.393 に答える