![](/img/trans.png)
[英]Can't get my Javascript function to run more than once in a PHP foreach loop
[英]For loop with if statement will not run more than once javascript
我試圖從數組中打印奇數和偶數,但由於某種原因,我的循環在僅打印一個數字后退出(“0 是偶數”正在打印)。 我不明白為什么它也不遍歷 1、2、3、4、5 和 6?
<!DOCTYPE html>
<html>
<body>
<p> Click the button to print odd and even numbers </p>
<button onclick="loopNum()">Click me</button>
<p id="loopNumbers"></p>
<script>
function loopNum(){
var numbers = [1, 2, 3, 4, 5, 6]
var text;
for(var i = 0;i < numbers.length;i++){
if (i % 2 ==0){
text = (i += " is even");
}
else if (i % 2 !=0){
text = (i += "is odd");
}
document.getElementById("loopNumbers").innerHTML=text;
}
}
</script>
</body>
</html>
您正在為i
分配一個字符串
i += " is even"
和
i += "is odd"
這打破了循環。
您可以將此代碼用於偶數部分
text += i + " is even" + '<br>';
然后你需要用''
初始化text
text = '';
你可以省略第二個 if 子句。
畢竟,輸出應該向下移動一步,因為它不應該在每個循環中進行輸出,這會覆蓋最后的內容。
function loopNum() { var numbers = [1, 2, 3, 4, 5, 6], text = ''; for (var i = 0; i < numbers.length; i++) { if (i % 2 == 0) { text += i + " is even<br>"; } else { text += i + " is odd<br>"; } } document.getElementById("loopNumbers").innerHTML = text; }
<p>Click the button to print odd and even numbers</p> <button onclick="loopNum()">Click me</button> <p id="loopNumbers"></p>
你的+=
放錯了地方。 您不是添加到文本變量,而是將字符串值分配給 i。 改變這個,它會起作用。
if (i % 2 ==0){
text += (i + " is even");
}
else if (i % 2 !=0){
text += (i + " is odd");
}
首先,您要重新分配循環變量 i,這是分配后的字符串:
i += " some string "
您不能使用字符串變量進行循環。
您遇到的第二個問題是您重新分配了 p 元素的值,因此最終您只會看到其中一個輸出。 要獲取所有輸出,您可以例如附加到 p 元素:
function loopNum(){
var numbers = [1, 2, 3, 4, 5, 6]
var text;
for(var i = 0;i < numbers.length;i++){
if (i % 2 ==0){
text = i + " is even";
}
else if (i % 2 !=0){
text = i + "is odd";
}
document.getElementById("loopNumbers").innerHTML += text;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.