Я думаю, важно отметить, что даже если <div>
был элементом HTMLInputElement, вы все равно будете получать undefined, потому что ваш div,
<div class='message' id='editor' contenteditable="true" onkeyUp='sync()' style="color: black"></div>
Не имеет атрибута value, вот пример div с атрибутом value:
<div class='message' id='editor' value='hello'></div>
Однако, как упоминалось в других ответах, даже если вы ввели его значение, значение будет по-прежнему возвращаться неопределенным, потому что <div>
является элементом HTML, а не элементом HTMLInputElement .
Если вам действительно нужно сохранить некоторую информацию в значении div, вы всегда можете сделать что-то вроде этого:
<div id="mydiv"></div>
<script>document.getElementById('mydiv').value='hello';</script>
Сразу после того, как div загружается, вы принудительно вызываете «привет» 'как значение.
Единственная причина, по которой вы это сделаете, - это то, что вы действительно хотите хранить данные в значении div и не можете сохранить их внутри innerHTML, потому что div виден.
Если вы хотите сохранить информацию в своем div следующим образом:
<div id="editor">all the information i want to store</div>
Затем document.getElementById('editor').innerHTML;
является правильным решением, но помните, что пользователи смогут видеть информацию на веб-странице.