【发布时间】:2012-08-02 02:00:15
【问题描述】:
有没有办法让这个更漂亮;
if ($("#Input").text === "A") { sOutput = "a"; lColor = "red"; }
if ($("#Input").text === "B") { sOutput = "b"; lColor = "orange"; }
if ($("#Input").text === "C") { sOutput = "c"; lColor = "yellow"; }
if ($("#Input").text === "D") { sOutput = "d"; lColor = "green"; }
if ($("#Input").text === "E") { sOutput = "e"; lColor = "blue"; }
if ($("#Input").text === "F") { sOutput = "f"; lColor = "violet"; }
...
真正的代码要广泛得多,带有 && 和 ||不同变量之间。但是每一行都遵循相同的语法,保存我正在寻找的“字母”和我设置的变量。我有这么多如果,我觉得很浪费。
*代码是用来说明我的观点的虚拟代码。
编辑
虚拟代码并不能说明我的观点,所以这里是真实的示例;
if ($(".Fig_Main").hasClass("Active")) {
sect_1 = (($(".Fig_A").hasClass("Active")) && ($(".Fig_1").hasClass("Active"))) ? "Slide_A1"
: (($(".Fig_A").hasClass("Active")) && ($(".Fig_B").hasClass("Active"))) ? "Slide_AB"
: (($(".Fig_1").hasClass("Active")) && ($(".Fig_B").hasClass("Active"))) ? "Slide_1B"
: (($(".Fig_1").hasClass("Active")) && ($(".Fig_3").hasClass("Active"))) ? "Slide_13"
...
我将这个块(长几行)重复了几次,每次都针对不同的 sect_#,以及结果设置值 (Slide_XY)。
非常感谢所有当前的建议。坚持下去。
【问题讨论】:
-
使用地图和小写字母。不知道非虚拟代码是否有益,但是 - 不知道您真正在做什么,很难知道如何提供帮助。
-
代码可读,但不一定高效。如果没有
else,javascript 将别无选择,只能测试所有条件。 -
@RosdiKasim,不是
Java,而是'javascript'。 -
@SheikhHeera,我更正了。由于它是 javascript,您可以使用
switch而不是if else -
@RosdiKasim,我不是
OP,那么xdazz的答案呢?
标签: jquery loops syntax if-statement