Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无论如何,如果不是这样的话,那就是简化javascript_Javascript_If Statement - Fatal编程技术网

无论如何,如果不是这样的话,那就是简化javascript

无论如何,如果不是这样的话,那就是简化javascript,javascript,if-statement,Javascript,If Statement,我有一个选择列表,其中将填写出生日期范围,每个列表都有一个需要返回的特定答案,我是javascript的初学者,并且已经设法使用if-else语句实现了我想要的结果 问题是这个列表需要有40个条目和40个答案,这将导致一个地狱般的大if语句 有谁能建议一种简单的编码方法吗 谢谢 <body> <select id="DobRange"> <option value="" >Please select a date range</option> &l

我有一个选择列表,其中将填写出生日期范围,每个列表都有一个需要返回的特定答案,我是javascript的初学者,并且已经设法使用if-else语句实现了我想要的结果

问题是这个列表需要有40个条目和40个答案,这将导致一个地狱般的大if语句

有谁能建议一种简单的编码方法吗

谢谢

<body>
<select id="DobRange">
<option value="" >Please select a date range</option>
<option value="1" >Dob range 1</option>
<option value="2" >Dob range 2</option>
<option value="3" >Dob range 3</option>
<option value="4" >Dob range 4</option>
</select>

<button onclick="message()">Go</button>

<div id="PassTxt"></div>

<script type="text/javascript">
function message(){
var s = document.getElementById('DobRange');
var DobRange = s.options[s.selectedIndex].value;

if (DobRange == "1"){
document.getElementById("PassTxt").innerHTML = "Answer 1";
}
else if (DobRange == "2"){
document.getElementById("PassTxt").innerHTML = "Answer 2";
}
else if (DobRange == "3"){
document.getElementById("PassTxt").innerHTML = "Answer 3";
}
else if (DobRange == "4"){
document.getElementById("PassTxt").innerHTML = "Answer 4";
}
}
</script>

请选择一个日期范围
Dob范围1
Dob范围2
Dob范围3
Dob范围4
去
函数消息(){
var s=document.getElementById('DobRange');
var DobRange=s.options[s.selectedIndex]。值;
如果(范围=“1”){
document.getElementById(“PassTxt”).innerHTML=“答案1”;
}
否则如果(DobRange==“2”){
document.getElementById(“PassTxt”).innerHTML=“答案2”;
}
否则如果(DobRange==“3”){
document.getElementById(“PassTxt”).innerHTML=“答案3”;
}
否则如果(DobRange==“4”){
document.getElementById(“PassTxt”).innerHTML=“答案4”;
}
}

简单,只需在文本中使用
DobRange
变量:

if(DobRange !== ""){
    document.getElementById("PassTxt").innerHTML = "Answer " + DobRange;
}
您不需要整个
if/else
结构。

我会:

<body>
<select id="DobRange">
<option value="" >Please select a date range</option>
<option value="1" >Dob range 1</option>
<option value="2" >Dob range 2</option>
<option value="3" >Dob range 3</option>
<option value="4" >Dob range 4</option>
</select>

<button onclick="message()">Go</button>

<div id="PassTxt"></div>

<script type="text/javascript">
function message(){
  var s = document.getElementById('DobRange');
  var DobRange = s.options[s.selectedIndex].value;

  if (DobRange !== ""){
    document.getElementById("PassTxt").innerHTML = "Answer " + DobRange;
  }
}
</script>

请选择一个日期范围
Dob范围1
Dob范围2
Dob范围3
Dob范围4
去
函数消息(){
var s=document.getElementById('DobRange');
var DobRange=s.options[s.selectedIndex]。值;
如果(DobRange!==“”){
document.getElementById(“PassTxt”).innerHTML=“Answer”+DobRange;
}
}

如果你需要的总是
“答案”+DobRange
,那么我会选择Cerburs的答案。但是,如果您想消除这种用例的else-if语句,您可以使用switch-case:

var answer = '';
switch (Dobrange){
    case 1:
    answer = "Answer 1";
    break;
    case 2:
    answer = "Answer 2";
    break;
    case 3:
    answer = "Answer 3";
    break;
    case 4:
    answer = "Answer 4";
    break;
    default:
    answer = "No answer";
}
document.getElementById("PassTxt").innerHTML = answer;
但就我个人而言,我发现类似于状态的模式更有用:

var answers={
   ans_1: "Answer 1",
   ans_2: "Answer 2",
   ans_3: "Answer 3",
   ans_4: "Answer 4",
   ans_: "No answer"
};
var pointer = "ans_" + DobRange;
document.getElementById("PassTxt").innerHTML = answers[pointer];