Обновлено: решено. После того, как полезные люди помогли мне решить эту проблему, я понял, что проблема связана с моим селектором getElementsByClassName. Извините, если название вводит в заблуждение. Исходный вопрос ниже.
Я получаю ожидаемые результаты от цикла for этой функции, но не могу заставить их распечатать в HTML.
Может ли кто-нибудь помочь указать, что мне не хватает? Подойдет точка в правильном направлении, я сам могу немного поработать.
Любой совет очень ценится.
HTML:
<input type = "text" name = "searchString" class = "searchString">
<span class = "longestWordInput"></span>
<span class = "longestWordCountInput"></span>
<button class = "generate">Generate</button>
JavaScript:
function longestWordFunc() {
var stringSplit = document.querySelector(".searchString").value.split(" ");
let longestWordCount = 0;
let longestWord = "";
for(var i = 0; i < stringSplit.length; i++) {
if (stringSplit[i].length > longestWordCount) {
longestWordCount = stringSplit[i].length;
longestWord = stringSplit[i]
}
}
//Logging expected result
console.info(longestWordCount)
console.info(longestWord)
//Print to HTML not working
document.getElementsByClassName("longestWordInput").innerHTML = longestWord;
document.getElementsByClassName("longestWordCountInput").innerHTML = longestWordCount;
};
document.querySelector(".generate").addEventListener("click", longestWordFunc);



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Привет, я считаю, что вам нужно использовать getElementsByClassName, как показано ниже
document.getElementsByClassName("longestWordInput")[0].innerHTML = longestWord;
document.getElementsByClassName("longestWordCountInput")[0].innerHTML = longestWordCount;
Проблема в том, что getElementsByClassName () возвращает NodeList (структура типа массива, содержащая все элементы с указанным именем класса) вместо одного элемента.
Вы можете получить доступ к своему элементу с одним пролетом следующим образом
document.getElementsByClassName("longestWordInput")[0].innerHTML = longestWord;
или вместо этого вы можете использовать querySelector ()
document.querySelector(".longestWordInput").innerHTML = longestWord;