换行javascript不会插入新行“\ n”

时间:2018-02-28 16:41:20

标签: javascript html arrays textarea

我一直在试图围绕这整个断线的事情,我在这里搜索并研究了我的灵魂。我似乎无法在这里找到我的具体问题的答案。我想从textarea获取输入并将其放入带有新行的数组中。它所做的只是在单词之间加一个逗号,而且它似乎只添加多个逗号来表示换行符所在的位置。当我添加< br />,它只是从文本中排除字母b。

function Wordscount() {
                var pText = document.getElementById("myTextarea").value.split(/[\n <>.,\?]/);
                document.getElementById("text").innerHTML = pText;

当我测试时它基本上就是这样:

It basically just looks like this when I test it

我是Javascript的新手,除非这是我们教授告诉我们使用的方法,否则我不会选择这个解决方案。我在这里真的很沮丧,而我只是想弄清楚这一点。

1 个答案:

答案 0 :(得分:2)

拆分字符串会将其转换为数组。将数组作为字符串处理等同于调用yourArray.join(',')。由于您不想添加逗号,因此请不要将数组视为字符串。

如果你想放入HTML换行符,那么你需要明确地这样做。

var array_of_lines = document.getElementById("myTextarea").value.split("\n");
var string_of_html = array_of_lines.join("<br>");
document.getElementById("text").innerHTML = string_of_html;

如果您不希望HTML特殊字符被视为具有特殊含义,请将每一行转换为文本节点并将其附加到其中。

var array_of_lines = document.getElementById("myTextarea").value.split("\n");
document.getElementById("text").innerHTML = "";
while(var text = array_of_lines.unshift()) {
    document.getElementById("text").appendChild(
        document.createTextNode(text)
    );
    document.getElementById("text").appendChild(
        document.createElement("br")
    );
}