Хорошо, так что короткая запись id = 1 или id = '1' не вызывает никаких проблем. Он все еще набирает HTML и работает нормально. Проблема заключается в теге p, когда вы помещаете что-то в тег P, он начинает вести себя по-другому, а тег разрыва (BR) не показывает разрывы строк. Я изменил P на Div, и теперь он выглядит нормально. Я изменил / удалил класс CSS также .input-group {position: relative; дисплей: -ms-flexbox; / * display: flex; Теперь вы можете видеть разрывы строк.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<ul>
<li id="1" class="draggable" draggable="true">
<div >
<p id='editable' draggable="false" style="width:400px; outline: none" >Text</p>
</div>
</li>
</ul>
<button onclick="testFunction('editable')">update</button>
<button onclick="myFunction()">Try it</button>
<div id="demo"></div>
<script>
function myFunction() {
document.getElementById("demo").innerHTML = document.getElementById(1).innerHTML;
}
function testFunction(el1) {
el= document.getElementById(el1);
var attr = document.createAttribute('contenteditable');
attr.value = 'true';
el.parentNode.firstElementChild.setAttributeNode(attr)
el.parentNode.firstElementChild.focus()
}
</script>
</body>
</html>