2017-05-15 22 views
-2

所以我想編寫一個簡單的項目。當點擊一個按鈕時,程序會生成一個介於1到50之間的隨機數,然後將其打印到我的DIV中。 我想要一個小功能,如果數字碰巧是18,背景色會變成紅色。當它應該時,JavaScript不會改變我的顏色,並且也是奇怪的日誌。出現

所以我試過做了很多次,但背景隨機變化。沒有訂單或任何。

我試着記錄下數字,看它們之間是否有任何連接,當它變成紅色時,但沒有運氣。

但是,在控制檯中,出現了一些灰色的2。也在隨機時間。

function getRandomNumber(){ 
    var randomNumber = Math.floor(Math.random()*50) + 1; 
    return randomNumber; 
} 
myButton.addEventListener('click',()=>{ 
    para.innerHTML = getRandomNumber(); 
    console.log(getRandomNumber()); 
    if(getRandomNumber() === 18){ 
     para.style.backgroundColor = "red"; 
    } 
}); 
+2

你調用'getRandomNumber' 3次(我猜你期待它返回相同的號碼)。將返回值存儲在一個變量'var theNumber = getRandomNumber();'中,並使用該變量而不是調用它。如果顏色已經是紅色,並且數字不是18,那麼我建議你在'if'中添加'else'。 –

回答

1

每當您撥打getRandomNumber()時,它都會生成一個新號碼。調用一次,將其保存到變量中,並且所有內容都應按照您的預期工作。

function getRandomNumber() { 
    var randomNumber = Math.floor(Math.random() * 50) + 1; 
    return randomNumber; 
} 
myButton.addEventListener('click',() => { 
    let number = getRandomNumber(); 
    para.innerHTML = number; 
    console.log(number); 
    if (number === 18) { 
    para.style.backgroundColor = "red"; 
    } 
}); 
+1

謝謝Larz!比我想象的容易!祝一切順利! –

0
  1. 你的問題是,你在呼喚getRandomNumber兩次,這將讓你兩種不同的隨機數。將隨機數字保存到變量var randomNumber = getRandomNumber(),然後使用此變量設置para的innerHTML,並檢查它是否爲十八,以查看背景是否應該更改。

  2. 灰色數字2僅表示相同的數字連續打印兩次。

+0

謝謝道格拉斯! –

1

設置返回值getRandomNumber()作爲變量。切換backgroundColor"red""unset"串之間或空""

function getRandomNumber(){ 
 
    var randomNumber = Math.floor(Math.random()* 4) + 1; 
 
    return randomNumber; 
 
} 
 

 
var para = document.querySelector("p"); 
 
var myButton = document.querySelector("button"); 
 

 
myButton.addEventListener("click",() => { 
 
const rand = getRandomNumber(); 
 
para.innerHTML = rand; 
 
para.style.backgroundColor = rand === 1 ? "red" : "unset"; 
 
});
<button>click</button> 
 
<p></p>

相關問題