Я новичок в JavaScript, и я хотел бы взять два ввода и напечатать текст в текстовом тексте на нижнем экране, как и для приложения JavaScript, но я получаю указанную ошибку. (См. Изображение)
JS-код
var array=[];
function naam()
{
var list = document.createElement("ul");
var inputname=document.getElementById("nameplace").value;
list.innerText=inputname;
array.push(list);
if (inputname ==""|| inputname == " "){
alert("kuch tu likho");
}
else {
var naam1= document.getElementById("naamprint");
naam1.appendChild(list);
}
}
var array1=[];
function comm() {
var list1=document.createElement("ul");
var inputname1=document.getElementById("commentplace").value;
list1.innerText=inputname1;
array1.push(list1);
if (inputname1 =="" || inputname1 ==" "){
alert("kuch to likho");
}
else {
var naam2=document.getElementById("commentprint");
naam2.appendChild(comm);
}
}
var action=document.getElementById("btn");
action.onclick=naam;
action.onclick=comm;
HTML
<p>Name <input type="text" id="nameplace"></p>
<p>Comment <input type="text" id="commentplace" ></p>
<button id="btn"> submit </button>
<p><b id="naamprint"></p></b>
<p><b id="commentprint"></p></b>
<script src="app.js"> </script>
Быстрый ответ
naam2.appendChild(comm); // error because comm is not an element that you can append
Изменить на
naam2.appendChild(list1);
Кроме того, вы определяете одного слушателя и переопределяете его
action.onclick=naam; // this will never execute
action.onclick=comm;
Изменить на
action.addEventListener('click', naam);
action.addEventListener('click', comm);
Еще немного комментариев:
а. сначала закрыть внутренний тег
<p><b id="naamprint"></p></b> // change to </b></p>
<p><b id="commentprint"></p></b> // same situation
б. Вы можете просто использовать nameplace.value
вместо document.getElementById("nameplace").value
оно работает для любого элемента с идентификатором. например, это
var naam2=document.getElementById("commentprint");
naam2.appendChild(comm);
могут быть упрощены до этого
commentprint.appendChild(comm);
с. ul тег.
var list1=document.createElement("ul");
ul
должен содержать тег li
, а не текст.
д. пространства в стоимости. этот:
if (inputname1 =="" || inputname1 ==" "){ ...
лучше изменить
if (!inputname1.trim()){ ...
comm
в функцииcomm
относится к самой функции, она не является элементом. Вам нужно добавитьlist1
вместоcomm
. Кроме того, элементul
не может иметь текстовый узел в качестве прямого содержимого, поэтому настройкаlist1.innerText=inputname1;
не делает то, что вы думаете, что делает.ul
, но это недопустимый HTML ... См.<ul>
.