#javascript #html #arrays #concatenation #paragraph
Вопрос:
Я пытаюсь взять информацию о форме, ввести ее в массив информации, а затем распечатать этот массив в абзац в конкатенации строк.
Вот мой HTML:
<body>
<input type="text" id="name" placeholder="Enter first name">
<input type="text" id="lName" placeholder="Enter last name">
<input type="text" id="age" placeholder="Enter age">
<input type="text" id="email" placeholder="Enter email address">
<button>Add Info</button>
<article>
<div>
<p>8</p>
</div>
</article>
<p id="future"></p>
<main>
</body>
Вот мой Javascript:
const btn = document.querySelector('button');
const paras = document.querySelectorAll('p');
btn.addEventListener("click", function(){
const name = document.getElementById("#name");
const lName = document.querySelector("#lname");
const age = document.querySelector("#age");
const email = document.querySelector("#email");
let info = [name " " lName " , you are " age "!" " But by your next birthday, you will
inherit $10 million dollars! We will email you your fortune to: " email "."];
document.querySelector("#future").innerHTML = info;})
Я получаю:
null [объект HTMLInputElement] , вы [объект HTMLInputElement]! Но к вашему следующему дню рождения вы унаследуете 10 миллионов долларов! Мы отправим вам ваше состояние по электронной почте по адресу: null.
Ответ №1:
Есть несколько проблем:
getElementById
ожидает только идентификатор в качестве аргумента, без#
. (querySelector
это нужно, потому что в качестве аргумента используется css-селектор).- В этом селекторе есть опечатка:
const lName = document.querySelector("#lname")
:#lName
вместо#lname
. - Вы напечатали входные элементы, а не их значения. Используйте
.value
для этого.
const btn = document.querySelector('button');
const paras = document.querySelectorAll('p');
btn.addEventListener("click", function() {
const name = document.getElementById("name");
const lName = document.querySelector("#lName");
const age = document.querySelector("#age");
const email = document.querySelector("#email");
let info = [name.value " " lName.value " , you are " age.value "!" " But by your next birthday, you will inherit $10 million dollars!We will email you your fortune to: " email.value "."];
document.querySelector("#future").innerHTML = info;
})
<body>
<input type="text" id="name" placeholder="Enter first name">
<input type="text" id="lName" placeholder="Enter last name">
<input type="text" id="age" placeholder="Enter age">
<input type="text" id="email" placeholder="Enter email address">
<button>Add Info</button>
<article>
<div>
<p>8</p>
</div>
</article>
<p id="future"></p>
</body>
Комментарии:
1. Вы помогаете кому-то обманывать людей?