Как отправить значение в div с ролью текстового поля

#javascript

#javascript

Вопрос:

Я пытаюсь отправить новое значение в div, у которого есть роль текстового поля, и я получаю эту ошибку:

 Uncaught TypeError:document.querySelector(...).value is not a function at <anonymous>:1:59
 

HTML-КОД

 <div class="msg-form__contenteditable t-14t-black--light t-normal flex-grow-1 full-height notranslate"contenteditable="true" role="textbox"aria-multiline="true" aria-label="Write a message…"<p>
<br>
</p>
</div>
 

МОЙ КОД
Он находит элемент, но не отправляет значение.

 document.querySelector('[aria-label="Writea message…"]').value("Paul")
 

Комментарии:

1. Отсутствует пробел между «Write» и «a» в JavaScript. Кроме того, value() это недопустимая функция JS. Вам нужно будет создать элемент или узел для текста и добавить его в <div> . Или вы могли бы заменить содержимое на innerHTML .

Ответ №1:

Вот немного информации о textbox роли. Прямо оттуда:

Лучше использовать <input> элемент с типом =»text» или <textarea> элемент вместо роли текстового поля ARIA. При использовании любого семантического элемента роль текстового поля ARIA не требуется. См. Примечания по использованию ARIA в HTML.

Если вы настроены на использование <div> , value для него недопустимый атрибут, и вам нужно будет использовать .innerText или innerHTML

 document.querySelector('[aria-label="Write a message…"]').innerHTML = 'Paul';
 

Также: .value() это не функция (это ошибка, которую вы получаете). Если вы пытаетесь установить значение элемента, для которого value является допустимым атрибутом, вы будете использовать element.value = 'Paul'; JavaScript или element.val('Paul'); jQuery

Комментарии:

1. Вы дали мне идею, и она сработала следующим образом: я нашел элемент p с помощью getelementsbytag, а затем я изменил внутренний HTML для абзаца