我需要使用 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 当给定未声明的非变量 length
的 undefined 值。 (这对 onclick
一点用都没有,它需要一个函数,而不是一个整数...)
None 其中,即使它 确实 工作(它没有......),也曾经要求数字计算机以任何方式在全部,"give anything back to you!"
当我点击按钮时,我无法让我的 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 当给定未声明的非变量 length
的 undefined 值。 (这对 onclick
一点用都没有,它需要一个函数,而不是一个整数...)
None 其中,即使它 确实 工作(它没有......),也曾经要求数字计算机以任何方式在全部,"give anything back to you!"