2016-10-15 8 views
-2

У меня есть этот код, где я хочу, чтобы текстовый узел t имел строку (запустил новую строку). Но LINEBREAK не добавил :(Как создать новую строку в текстовом узле

Пожалуйста, помогите ...

// 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 = ""; 
} 
+0

Просмотрите мое редактирование. Я уточнил формулировку, но я не уверен на 100%, что это то, что вы имели в виду. Также добавьте html, чтобы сделать проблему воспроизводимой. – YakovL

+0

Я хочу, чтобы текстовый узел t имел строку, в первой строке будет «myinput», а следующая строка будет «ddd» –

ответ

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 применяется к вашему элементу (что является еще одним вариантом решения вашей проблемы).

+0

спасибо !!!!!! –