我是编程新手,我目前仍然坚持Ping-Pong又名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();
};
});
同样,我是新人,所以如果有人可以一步一步地分解它,我真的很感激。谢谢。
答案 0 :(得分:2)
这是不对的:
var a = document.getElementById("#input-number");
必须是以下行之一:
var a = document.getElementById("input-number");
// Or
var a = $("#input-number").get(0);
// Or
var a = $("#input-number")[0];
但它不能解决你的问题。深入研究您的代码。我想你需要一个表格然后得到第一个元素:
var a = document.getElementById("start-form");
var num = a.elements[0].value;
但你可以进一步简化。为什么不这样做:
// remove the a variable
var num = $("#input-number").val(); // get the input-number value
答案 1 :(得分:0)
根据您的代码,我认为您只需要清理一些语法,以便jquery使用表单中的值。
我拿了你的代码,为了清晰起见而将其剥离并制作了一个小提琴。
这是链接:
http://jsfiddle.net/zwa5s3ao/3/
$(document).ready(function(){
$("form").submit(function(event){
var num = $('#input-number').val()
for (var i = 1; i <= num; i++) {
if (i % 15 === 0) {
$('#list').append('<li>'+"Ping-Pong"+'</li>');}
else if (i % 3 === 0) {
$('#list').append('<li>'+"Ping"+'</li>');}
else if (i % 5 === 0) {
$('#list').append('<li>'+"Pong"+'</li>');}
else{
$('#list').append('<li>'+i+'</li>');}
};
event.preventDefault();
});
});
&#13;
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<title>Ping-Pong Test</title>
<body>
<form>
Your number:
<input type="number" name="input-number" id="input-number">
<input type="submit" value="Calculate">
</form>
<ul id="list"></ul>
</body>
&#13;
希望这有帮助!