无论如何,如果不是这样的话,那就是简化javascript
我有一个选择列表,其中将填写出生日期范围,每个列表都有一个需要返回的特定答案,我是javascript的初学者,并且已经设法使用if-else语句实现了我想要的结果 问题是这个列表需要有40个条目和40个答案,这将导致一个地狱般的大if语句 有谁能建议一种简单的编码方法吗 谢谢无论如何,如果不是这样的话,那就是简化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
<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];