C_K*_*C_K 0 syntax jquery loops if-statement
有没有办法让这个更漂亮;
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"; }
...
Run Code Online (Sandbox Code Playgroud)
使用&&和||,真正的代码更加广泛 不同变量之间.但是除了我正在寻找的'letter(s)'以及我设置的变量之外,每一行都遵循相同的语法.我有这么多的ifs,这让我感到很浪费.
*代码是虚拟代码,以说明我的观点.
编辑
虚拟代码没有说明我的观点,所以这里是真实的样本;
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"
...
Run Code Online (Sandbox Code Playgroud)
我有这个块(几行更长)重复几次,每次不同的sect_#和结果设置值(Slide_XY).
目前的所有建议都非常感谢.坚持下去.
你可以这样做:
var dic = {
"a": "red",
"b": "orange",
"c": "yellow",
"d": "green",
"e": "blue",
"f": "violet"
};
sOutput = $("#Input").text().toLowerCase();
lColor = dic[sOutput];
Run Code Online (Sandbox Code Playgroud)