【发布时间】:2015-01-08 16:27:49
【问题描述】:
我是编程新手,目前卡在 Ping-Pong aka FizzBuzz 问题上。 (制作一个网页,提示用户输入一个数字并显示直到该数字的每个数字。但是,对于三的倍数,页面打印“ping”,对于五的倍数,页面打印“pong”,并且对于三和五 (15) 的倍数,页面将打印“乒乓球”。)
我在这里查看了其他解决方案(例如this one),它们对理解如何解决它很有帮助。我希望我的 javascript 反映了这一点。
我的问题是我被困在试图从网页上的表单中获取输入数字并通过 javascript 运行它,如果这有意义的话。
我很确定我的 javascript 的一部分只是将我拥有的所有东西都扔给它的集合体,这不是最好的。任何人都可以检查我的代码,看看我在这里做错了什么吗?
这是我的 HTML:
<!DOCTYPE html>
<html>
<head>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="css/styles.css" rel="stylesheet" type="text/css">
<script src="js/jquery-1.11.2.js"></script>
<script src="js/scripts.js"></script>
<title>Ping-Pong Test</title>
</head>
<body>
<div class="container">
<h1>Ping Pong Test</h1>
<p>Let's play the Ping-Pong game. The Ping-Pong game is a simple test that involves loops, conditionals, and variables. Enter your number below to start</p>
<form id="start-form">
<label for="input-number">Your number:</label>
<input id="input-number" type="number">
<button type="submit" class="btn">Calculate</button>
</form>
<div id="end-number">
<ul id="results"></ul>
</div>
</div>
</body>
</html>
还有我的javascript:
$(document).ready(function () {
$("#start-form").submit(function(event) {
var a = document.getElementById("#input-number");
var num = a.elements[0].value;
var listItems = "";
var i;
for (var i = 1; i <= num; i++) {
if (i % 15 === 0) {
console.log("Ping-Pong");
}
else if (i % 3 === 0) {
console.log("Ping");
}
else if (i % 5 === 0) {
console.log("Pong");
}
else{
console.log(i);
};
event.preventDefault();
};
});
再说一次,我是新人,所以如果有人能一步一步地分解它,我真的很感激。谢谢。
【问题讨论】:
-
从.getElementById('input-number')中删除#;
-
另外我很确定
a是一个元素,他不需要.elements[0]位。 -
下次请创建一个code pen或者js fiddle。我为你创建了一个并修复了它。你有两个小问题(这里已经提到过):codepen.io/mnpenner/pen/QwdvLM?editors=101
标签: javascript html fizzbuzz