我需要使用 JS 找到句子中最长的单词

I need to find the longest word in a sentence using JS

当我点击按钮时,我无法让我的 JS return 最长的单词。我不确定我的 JS 代码中遗漏了什么或输入不正确,但是当我输入三个单词时,没有任何东西返回给我。我已将我的 JS 和 html 代码粘贴在下方。

HTML:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Longest Word</title>   
    <link rel="stylesheet" href="../css/easy.css">      
    <script src="p3-longest.js"></script>
</head>
<body>
    <header>
         <h1>Longest Word</h1>

    </header>
<body>
    <form action="demo_form.asp" id="demo_form">
  Phrase:
  <input type="text" id="input1" name="LongestWord" placeholder="Put Phrase Here">
  <br>
  <input type="button" id="btn1" value="Longest Word">
</form>
</body>
</html>

JS:

function longestWord(string) {
    var str = string.split(" ");
    var longest = 0;
    var word = null;
    for (var i = 0; i < str.length ; i++) {
        if (longest < str[i].length) {
            longest = str[i].length;
            word = str[i];
        }
    }
    return word;
}

function init() {
    alert('count words');
    var countTag = document.getElementById('btn1');
    countTag.onclick = longestWord(string);
}
window.onload = init;

将此添加到您的按钮:

 onClick="alert(longestWord(document.getElementById('input1').value))"

它将获取 input1 的值并将其发送到 longestWord 函数。然后用函数中的 return 值设置一个警告框。

试试这个:

Phrase:
<input type="text" id="input1" name="LongestWord" placeholder="Put Phrase Here">
<br>
<input type="button" id="btn1" value="get Longest Word">
<br/>
Longest Word: <span id='sp1'></span>
<script>                   
    var btn = document.getElementById("btn1");
    var in1 = document.getElementById("input1");
    var sp1 = document.getElementById("sp1");
    btn.onclick = function(){
        var vals = in1.value.split(' ');
        var val = vals[0];
        vals.forEach(function(v){ if(v.length>val.length) val = v;});
        sp1.textContent = val;
    }
</script>

Fiddle Demo

我没有发现您的代码有什么特别的错误...除了 "I don't see any code here that will ever 'give anything back to you!'" :-)

据推测,“onload”,init() 函数尽职尽责地运行......并将 countTag.onclick 设置为任何整数值 longestWord() 可能 return 当给定未声明的非变量 lengthundefined 值。 (这对 onclick 一点用都没有,它需要一个函数,而不是一个整数...)

None 其中,即使它 确实 工作(它没有......),也曾经要求数字计算机以任何方式在全部,"give anything back to you!"