Javascript - document.createTextNode()

时间:2012-04-18 15:35:41

标签: javascript html

使用此功能剥离我的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,"") ); 

1 个答案:

答案 0 :(得分: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/