JavaScript, если оператор не выполняет 2-й параметр - PullRequest
2 голосов
/ 23 июля 2011

У меня есть переменная, равная 1 или 0, если она равна 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 ]

4 голосов
/ 23 июля 2011

Вам нужно:

if (randomnumber == 0)

А:

if (randomnumber == 1)

Выражения randomnumber = 0 и randomnumber = 1 являются выражениями присваивания , которые присваивают переменные 0 и 1, несмотря на то, что они находятся внутри условного оператора if.

Таким образом, это всегда относится к google.com , поскольку все, что не равно 0, является выражением true в JavaScript .

2 голосов
/ 23 июля 2011

Вы должны использовать ==, чтобы сделать проверку. = устанавливает значение вместо его оценки. Я бы также предложил передать случайное число в функцию.

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";
    } 
}  
1 голос
/ 23 июля 2011

Вы должны использовать == не = !!!!!!!!!!!!!!!!

0 голосов
/ 23 июля 2011

Бен, вы используете локальную переменную от random в check_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";
}
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...