Мой оператор if else не работает должным образом - внутренний HTML остается неизменным для всех операторов - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь выяснить, почему мое условное утверждение не работает, как предполагалось. Часть else оператора вообще не работает, так как остается той же, что и для оператора else if. Я попытался упростить утверждение, просто имея if / else, но это не сработало. Я буду очень признателен за некоторую помощь, чтобы разобраться в этом вопросе.

PS В моем случае, если я хочу использовать нулевое выражение, я должен использовать его как строку. Еще одна загадка.

Вот мой код:

var name = prompt("Could you please tell me your name?");
    var newP = document.createElement('p');
    newP.setAttribute('id', 'mainP');
    document.body.appendChild(newP);


    if(name == 'null' || '') {
        newP.innerHTML = "I'm just looking for Aname! " + String.fromCodePoint(0x1F612);
    }else if(name == 'Aname' || 'aname') {
        newP.innerHTML = 'Yes, I finally found Aname! ' + String.fromCodePoint(0x1F60D);
    }else {
        newP.innerHTML = "I'm just looking for Aname! " + String.fromCodePoint(0x1F612);
    }

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

При сравнении переменной с несколькими значениями вы должны сделать это в отдельных сравнениях, например:

if(name == 'null' || name == ''){

}

В настоящее время ваш оператор if оценивает эквивалент следующего оператора:

if((name == 'null') || ''){

}

1 голос
/ 29 февраля 2020

Ваша другая часть вообще не работает, потому что вы неправильно используете оператор || в условии if, оператор

Or используется для объединения двух разных логических выражений .

В вашем случае name == 'null' и name == '' - это два разных логических выражения.

На самом деле вы просто if..else и все. Если имя Aname или aname, тогда выполнить, если блок в противном случае выполнить иначе блок

   if(name == 'Aname' || name == 'aname') {
                             //^^^^^^^^^^ This was missing
        newP.innerHTML = 'Yes, I finally found Aname! ' + String.fromCodePoint(0x1F60D);
    }else {
        newP.innerHTML = "I'm just looking for Aname! " + String.fromCodePoint(0x1F612);
    }

Даже если вам не нужны два условия (Это полностью зависит от ваших требований) , преобразуйте свое имя в нижний регистр, используя toLowerCase() и отметьте aname, например

   //Now this will execute if condition if name is aname, Aname, aName, AName ...    
   if(name.toLowerCase() == 'aname') {
        newP.innerHTML = 'Yes, I finally found Aname! ' + String.fromCodePoint(0x1F60D);
    }else {
        newP.innerHTML = "I'm just looking for Aname! " + String.fromCodePoint(0x1F612);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...