【发布时间】:2011-11-29 01:16:16
【问题描述】:
我有以下代码,它取决于 url 参数的变化,然后隐藏表单上的选择选项。即 www.example.com?type=images
最终会有超过 20 个不同的参数。我想知道比拥有大量 if else 更好的方法。只是一个如何做的大纲很好,我是新手,所以我希望能够接受答案并从中学习。谢谢。
var type = getURLparameter('type'); //from another function
if (type == "images"){
var selectDiv =('divid');
var selectField = ('selectid');
document.getElementById(selectField).options[1].selected=true;
document.getElementById(selectDiv).style.visibility="hidden";
}
else if (type == "pizza") {
var selectDiv =('divid');
var selectField = ('selectid');
document.getElementById(selectField).options[2].selected=true;
document.getElementById(selectDiv).style.visibility="hidden";
}
else (type == "cheese") {
var selectDiv =('divid');
var selectField = ('selectid');
document.getElementById(selectField).options[3].selected=true;
document.getElementById(selectDiv).style.visibility="hidden";
}
【问题讨论】:
-
switch 呢?
-
我会格式化你的 HTML 等,这样你就不需要所有的特殊情况了。
-
我必须同意 Blender 的评论。如果你的结构做得很好,你不应该需要 if-elses 或 switch 语句。
-
在我看来,在给出的示例代码中,在每种情况下唯一改变的是
.options集合的索引,所以无论您使用开关还是保留if/else if/else if结构选择适当的选项是每种情况下唯一需要的东西 - 其他三行可以在第一个IF(或在交换机之前,如果您,请切换到该)。跨度> -
我该怎么做?这只是一个选择字段。
标签: javascript switch-statement if-statement