无法获得JavaScript函数执行
我是一名Javascript初学者,无法获取下面的代码来工作。当我点击按钮时,没有任何反应。有人能指出我做错了什么吗?谢谢!无法获得JavaScript函数执行
<html>
<head>
<title>Sarah's Puppy Game</title>
</head>
<body>
<div id="input">
<input id="puppyNumber" size=30>
<button onClick="doLoop()"> Get your puppies </button>
</div>
<script type="text/html">
function doLoop() {
var number = document.getElementById('puppyNumber').value;
var puppy = [];
while (var i = 0; i < parseInt(number); i++) {
puppy = puppy.push('puppy<br>');
}
alert(puppy);
}
</script>
</body>
</html>
而不是...
puppy = puppy.push('puppy<br>');
...只想说...
puppy.push('puppy<br>');
push
返回已推元素,而不是数组,它被推倒。
您的代码将导致变量puppy
被设置为字符串"puppy<br>"
。然后你会尝试做"puppy<br>".push("puppy<br>")
,这显然是无效的。
代码还有几个问题:-) – 2012-01-02 03:28:42
迈克尔的答案在这里是更完整的答案,我已经标记为这样。 – 2012-01-02 03:29:41
你们真棒,非常感谢!有没有理由在javascript中使用for而不是while循环? – user1086348 2012-01-02 03:33:59
我看到的三个问题。
首先,使用
text/javascript
为<script type='text/javascript'>
其次,在循环改变
while
到for
。 Awhile
循环用于测试条件,但您已设置计数器。第三,不要将
puppy
与push()
方法分配。.push()
直接作用于阵列。
Here's the corrected version in action.
<!-- type="text/javascript" not "text/html" -->
<script type="text/javascript">
function doLoop() {
var number = document.getElementById('puppyNumber').value;
var puppy = [];
// This is a for loop, rather than a while loop
// Also for good measure, use the second param to parseInt() for a
// decimal radix to avoid getting binary or octal numbers accidentally.
for (var i = 0; i < parseInt(number, 10); i++) {
// Don't assign the result back to puppy
puppy.push('puppy<br>');
}
alert(puppy);
}
</script>
你期望发生的? – 2012-01-02 03:23:02
一个警告框弹出与单词小狗打印的次数我进入输入 – user1086348 2012-01-02 03:24:37
你可以尝试什么时候“什么都没有发生”的事情:1)检查你的浏览器的JavaScript错误日志2)添加'alert'语句以获得一瞥发生了什么事情。 – 2012-01-02 03:31:09