Сохранение результата цикла для вставки в HTML

Обновлено: решено. После того, как полезные люди помогли мне решить эту проблему, я понял, что проблема связана с моим селектором 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);
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
25
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Привет, я считаю, что вам нужно использовать 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;

Другие вопросы по теме