В вашем коде есть несколько ошибок, которые нужно исправить.
Во-первых, вы вызываете fnLongestWord()
, когда нажимаете кнопку, поэтому вы не передаете строку из формы.Вам нужно получить строку из формы, используя:
var str = document.getElementById('longestWord').value;
Это позволит получить value
(текст) элемента с id
longestWord
.Это получит текст из текстового поля (как я его дал id="longestWord"
)
Теперь вы хотите перебрать свой массив words
.Для этого вы можете использовать words.length
в цикле for.
Далее вы хотите исправить оператор if
.В настоящее время ваш синтаксис и логика неверны.Вместо этого вам нужно сделать его if(longest.length < words[i].length) longest = words[i];
, в котором говорится, что если самое длинное слово, найденное в настоящее время, меньше нашего текущего слова, установите новое самое длинное слово равным текущему слову (word[i]
).
Наконец, вы не правильно добавляете ответ на страницу.Вместо этого вы должны сделать:
document.getElementById("showResult1").textContent += "Longest word is: " + longest;
Чтобы установить самое длинное слово в абзаце showResult1
.
См. Рабочий пример ниже:
function fnLongestWord() {
var str = document.getElementById('longestWord').value;
var words = str.split(" ");
var longest = "";
for (let i = 0; i < words.length; i++) {
if (longest.length < words[i].length) longest = words[i];
}
document.getElementById("showResult1").textContent += "Longest word is: " + longest;
}
<div id="LongWord" class="Tab">
<form id="Longestword">
<label>Enter text: <input id="longestWord" name="text "></label>
<button type="button" onclick="fnLongestWord()"> Find longest word</button>
</form>
<!--here the output show-->
<p id="showResult1"></p>
</div>