如何在文本节点中创建换行符

时间:2016-10-15 11:23:06

标签: javascript textnode

我有这个代码,我希望文本节点t有一个换行符(开始一个新行)。但没有添加换行符:(

请帮忙......

// Create a new list item when clicking on the "Add" button
function newElement() {
    var li = document.createElement("li");
    var inputText = document.getElementById("myInput").value + document.createElement("br") + "ddd" ;
    var t = document.createTextNode(inputText); // this text node is supposed to have a linebreak
    li.appendChild(t);
    li.value = document.getElementById("myValue").value;
    if (inputText === '') {
        alert("You must write something!");
    } else {
        updateLI(li);
        document.getElementById("myUL").appendChild(li);
    }
    document.getElementById("myInput").value = "";
    document.getElementById("myValue").value = "";
}

1 个答案:

答案 0 :(得分:0)

这里的主要问题是文本节点不能包含任何其他元素,并且您尝试在其中添加br元素。你需要的是:

function newElement() {
    var li = document.createElement("li");
    var inputText = document.getElementById("myInput").value;
    li.appendChild(document.createTextNode(inputText));
    li.appendChild(document.createElement("br"));
    li.appendChild(document.createTextNode("ddd"));

    ...

请记住,在文本节点中添加\n字符也无济于事,因为html会将所有空格“转换”为单个空格符号 - 除非您使用white-space: pre; CSS应用于你的元素(这是解决你的问题的另一种选择)。