2012-11-29 78 views
0

我有一个网页是为了生成一个随机数,然后当数字= 5时,它显示一条赢得消息..如果不显示丢失消息,但它不显示任何警报。 。我错过了什么?Javascript随机数字不显示结果

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 

function WinLose() 
{ 
var x=document.getElementById("demo"); 
x=x.innerHTML=Math.floor((Math.random()*5)+1); 
return x; 
if (x=4) 
{ 
    alert("winner!"); 
} 
else 
{ 
    alert("loser"); 
} 
} 
</script> 

</head> 
<body> 


<p id="demo">Click the button to display a random number between 1 and5.</p> 


<button onclick="WinLose()">Try it</button> 

</body> 
</html> 

编辑: 设法让该位工作,所以现在要么显示赢或松动取决于它的数量,但没有人知道如何我可以换的警报if语句来显示一个DIV部分。我得到了一个jQuery文件,所以它可以接受隐藏/显示效果...任何我试过没有工作

回答

3

你有return x你为x产生一个随机值后。这意味着在该行之后没有任何JavaScript代码将在该函数中运行。

此外,您的if语句需要使用'=='来进行比较,而不是'='这是赋值。

2

是的,它可能很难。主要问题再次不得不是return x是“==”。因此,这

if (x=4) 

真正应该说:

if (x==4) 

你以前说什么,你是assinging X 4,使具有根本没有意义,打乱了一切。

希望这可以帮助你!

0

您需要在生成随机值后return x;并且必须添加x == 4

function WinLose() 
{ 
var x=document.getElementById("demo"); 
x=x.innerHTML=Math.floor((Math.random()*5)+1); 
if (x==4) { 
    alert("winner!"); 
} else { 
    alert("loser"); 
} 
    return x; 
} 

DEMO

0

您的代码:

x=x.innerHTML=Math.floor((Math.random()*5)+1); 

x正在接收x.innerHTML然后x.innerHTML = random number

正确方法:(删除 “X =”)

x.innerHTML = Math.floor((Math.random()*5)+1); 
0

下面是一个简化版本,外化警报(我假设你不打算以后使用它们)

function WinLose(){ 
    var x=Math.floor((Math.random()*5)+1); 
    document.getElementById("demo").innerHTML=x; 
    return (x==5) ? "Winner!" : "Loser"; 
} 

alert(WinLose());