【问题标题】:If statement ignores else option JavascriptIf 语句忽略 else 选项 Javascript
【发布时间】:2014-03-28 16:45:27
【问题描述】:

我创建的 If 语句忽略了我放置在其中的 else 选项。前三个选项有效,但如果我输入 (y,x,z) 之类的内容,它会给我两个随机 if 语句,同时仍然给我“抱歉”消息。经过大量研究后,我仍然无法弄清楚我做错了什么。

 var questionB = new Array ();
var key1= ["x", "y", "z"];
var key2= ["y","z","x"];
var key3 =["z", "x", "y"];

window.onload = function() {
var eSelect = document.getElementById('question1');
var optOtherReason = document.getElementById('displayresponse');
var options = document.getElementsByTagName("option");



eSelect.onchange = function() {



    questionB.push(eSelect.value);
    var y= document.getElementById("answerTest");
    y.innerHTML= questionB;



    if (eSelect.selectedIndex ==0) {

        optOtherReason.style.display = 'block';
        }



    if (questionB.length>2) {

            document.getElementById('question1').style.visibility="hidden";
            document.getElementById('generateButton').style.display = "block";
        }
        }
        }



    generate= function () {

        for ( var i=0; i<1; i++)
        {
        if (questionB[i]==key1[i]) {
            alert("your drink is an orange vanilla protein shake")
            document.getElementById("result1").style.display= "block";      

            }
        else if (questionB[i]==key2[i]) {
            alert("your drink is a strawberry nut protein shake")
            document.getElementById("result2").style.display= "block";      


            }
        else if(questionB[i]==key3[i]){
            alert("your drink is a wild berry protein shake")
            document.getElementById("result3").style.display= "block";      

        }
        else {document.getElementById("result4").style.display= "block";}   
        document.getElementById("result5").style.display= "block";

        }//end of generate function

    }

    function reloadPage(){
window.location.reload();
 }

<select id="question1" name="question" style="display:block;">
<option value=""></option>
<option value="x">Reason1</option>
<option value="y">Reason2</option>
<option value="z">Otherreason</option>
<!--<option value="none">None</option>-->


如果您在这里没有看到选择,您可以搜索其他网站。 你的结果是橙色香草奶昔。点击这里查看成分 . 你的结果是草莓坚果奶昔。点击这里查看成分 . 你的结果是野生浆果奶昔。点击这里查看成分 . 对不起,请再试一次。 请再玩一次。

【问题讨论】:

    标签: javascript html arrays if-statement compare


    【解决方案1】:

    其他 if 不太好用。试试这个开关(这也使代码更清晰和可读):

        switch(questionB[i])
        case(key1[i]) {
            alert("your drink is an orange vanilla protein shake")
            document.getElementById("result1").style.display= "block";      
    
            }
        case(key2[i]) {
            alert("your drink is a strawberry nut protein shake")
            document.getElementById("result2").style.display= "block";      
    
    
            }
        case(key3[i]){
            alert("your drink is a wild berry protein shake")
            document.getElementById("result3").style.display= "block";      
    
        }
        default{document.getElementById("result4").style.display= "block";}   
        document.getElementById("result5").style.display= "block";
    
        }//end of generate function
    

    请检查语法...不太确定这是否正确。

    【讨论】:

      【解决方案2】:

      如果你在多个 if 语句中有相同的操作数,那么尝试使用 switch 而不是嵌套的 if else 语句,这将是更好的方法;喜欢这里 questionB[i]

      generate = function(){
          for( var i=0; i<1; i++){
              switch(questionB[i]){
                  case key1[i]:
                      alert("your drink is an orange vanilla protein shake");
                      document.getElementById("result1").style.display= "block";
                      break;
                  case key2[i]:
                      alert("your drink is a strawberry nut protein shake");
                      document.getElementById("result2").style.display= "block";
                      break;
                  case key3[i]:
                      alert("your drink is a wild berry protein shake");
                      document.getElementById("result3").style.display= "block";
                  default:
                      document.getElementById("result4").style.display= "block";
              }
              document.getElementById("result5").style.display= "block";
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-04
        • 1970-01-01
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        • 2016-06-21
        • 2015-05-16
        • 1970-01-01
        相关资源
        最近更新 更多