2

使用它会剥离我的 newLine 字符

是否有替代方案可以呈现 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

换行符仅在<pre>块内有意义(AFAIK)。

除此之外,要强制换行,您必须将字符串拆分为单独的行,然后创建一个文本节点,然后<br/>为每个节点创建一个,例如:

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 回答