Javascript if语句没有执行第二个参数

时间:2011-07-23 14:08:00

标签: javascript redirect if-statement

我有一个1或0的var,如果它是1,页面应该转到cnn.com,如果它是0,它应该去google.com。问题是,当它为1或0时,它总是进入google.com。查看正在运行的版本http://jsbin.com/ucovef/7提前致谢

function random(){
var randomnumber=Math.floor(Math.random()*2)
document.getElementById('randomnumber').innerHTML=(randomnumber);
check_random()
}
function check_random(){
if (randomnumber = 0){
this.location.href ="http://www.cnn.com";
}
if (randomnumber = 1){
this.location.href="http://www.google.com";
}
} 

4 个答案:

答案 0 :(得分:4)

你需要:

if (randomnumber == 0)

并且:

if (randomnumber == 1)

表达式randomnumber = 0randomnumber = 1赋值表达式,它们将数字01分配给变量,尽管它们位于{{ 1}}条件陈述。

因此,它始终用于 google.com ,因为所有不等于if的内容都是 JavaScript 中的0表达式。

答案 1 :(得分:2)

您必须使用==进行检查。 =设置值而不是评估它。我还建议将随机数传递给函数。

function random(){
    var randomnumber=Math.floor(Math.random()*2)
    document.getElementById('random').innerHTML=(randomnumber);
    check_random(randomnumber)
}

function check_random(randomnumber){
    if (randomnumber == 0){
        this.location.href ="http://www.cnn.com";
    }
    else if(randomnumber == 1){
        this.location.href="http://www.google.com";
    } 
}  

答案 2 :(得分:1)

你必须使用== not = !!!!!!!!!!!!!!!!

答案 3 :(得分:0)

Ben,您正在使用randomcheck_random的本地变量。这不行。试试这个

function random(){
var randomnumber=Math.floor(Math.random()*2)
document.getElementById('randomnumber').innerHTML=(randomnumber);
check_random(randomnumber)
}
function check_random(n){
if (n == 0){
this.location.href ="http://www.cnn.com";
}
if (n == 1){
this.location.href="http://www.google.com";
}
}