这是我的下拉菜单---
<select name="category" id="category" onChange="showDiv(this.value);" >
<option value="">Select This</option>
<option value="1">Nokia</option>
<option value="2">Samsung</option>
<option value="3">BlackBerry</option>
<option value="4">Spice</option>
<option value="5">HTC</option>
</select>
这是我的span类,我想在选择的基础上显示数据
<span class="catlink"> </span>
我的JS功能(虽然当我通过if
条件执行此功能时功能正常)
function showDiv(discselect) {
switch(discselect) {
case 1:
document.getElementsByClassName("catlink")[0].innerHTML = '<a href="nokia.txt">Click To Download</a>';
break;
case 2:
document.getElementsByClassName("catlink")[0].innerHTML = '<a href="samsung.txt">Click To Download</a>';
break;
case 3:
document.getElementsByClassName("catlink")[0].innerHTML = '<a href="blackberry.txt">Click To Download</a>';
break;
default:
alert(discselect);
document.getElementsByClassName("catlink")[0].innerHTML = 'aaaa';
}
}
现在每次执行默认情况时运行代码而1,2,3仍在提醒,让我知道我做错了什么,我的逻辑是否滞后?
答案 0 :(得分:5)
您的光盘选择是以字符串形式出现的......因此您需要将案例更改为:
switch ( discselect ){
case '1':
break;
case '2':
break;
case '3':
break;
default:
alert(discselect);
}
}
答案 1 :(得分:3)
Javascript的case
测试是严格的:如果discselect
是字符串而不是数字,则代码将始终采用默认分支。
您可以将discselect
转换为switch
声明中的数字:
switch (+discselect) {
// ...
}
或者在case
测试中使用字符串:
switch (discselect) {
case "1":
// ...
break;
// ...
}
答案 2 :(得分:0)
onChange="showDiv(this.value);"
应该是
onchange="showDiv(this.options[this.selectedIndex].value)"
编辑: 和
switch (discselect) {
应该是
switch (+discselect) {