Я пытаюсь вызвать набор элементов из документа HTML по имени класса, который, как я понимаю, возвращает их как объект, похожий на массив. Я хотел бы перебрать значения этого массива в цикле for, но цикл возвращает значение undefined для каждого значения в массиве, даже если в элементах, которые я вызываю, определенно есть значение.
В основном я хочу вывести на веб-страницу следующее, в несколько простых элементов div:
Строка прогнозирования возраста 1: Здравствуйте, Джордж, вам 201 год в 2019 году
Строка прогнозирования возраста 2: Привет, Энди, тебе 29 лет в 2020 году
Строка прогнозирования возраста 3: Привет, Кайл, тебе 20 в 2021
Строка прогнозирования возраста 4: Привет, Дженни, тебе 20 в 2022
Имена являются значениями элементов в классе "myinput". Я использую довольно стандартный цикл, как показано ниже:
const years = [2019, 2020, 2021, 2022];
var name = document.getElementsByClassName("myinput");
var age = document.getElementById("agefield").value;
var intage = parseInt(age, 10);
for (i = 0; i < 4; i++) {
document.getElementsByClassName("ageprediction")[i].innerHTML = "Age
prediction line " + (i+1) + ": ";
document.getElementsByClassName("testdiv")[i].innerHTML = " Hello " +
name[i].value + " you are " + [intage+i] + " in " + years[i];
}
Существует только один элемент agefield, и вызов его по Id, добавление .value и преобразование в целое число работает нормально. Но после понимания и прочтения повсюду, что вы можете использовать подобный код для циклического перемещения по элементам массива getElementbyClass в цикле for с использованием текущего значения индекса, я все равно получаю «undefined» в качестве результата. Это потому, что имя [i] .value не правильный код?
ОБНОВЛЕНИЕ: Несколько человек попросили также посмотреть соответствующий HTML, вот он:
<section id="form">
<input class="myinput" value="George"/><br/><br/>
<input class="myinput" value="Andy"/><br/><br/>
<input class="myinput" value="Kyle"/><br/><br/>
<input class="myinput" value="Jenny"/><br/><br/>
<input id="agefield" placeholder="Your age" value="28"/><br/><br/>
<div class ="ageprediction"></div><div class = "testdiv">Testing</div><br/><br/>
<div class ="ageprediction"></div><div class = "testdiv">Testing</div><br/><br/>
<div class ="ageprediction"></div><div class = "testdiv">Testing</div><br/><br/>
<div class ="ageprediction"></div><div class = "testdiv">Testing</div><br/><br/>
</section>
Как вы видите, я сейчас использую предопределенные значения во входных данных для целей тестирования.