我不能else在我的剧本中使用; 如何在if else不使用的情况下实现语句else?
我正在尝试调整div的大小:
function hideTable(){
var table = document.getElementById('PDemo');
if(table.style.width == "50%") table.style.width = "150px";
if(table.style.width == "150px") table.style.width = "50%";
}
Run Code Online (Sandbox Code Playgroud)
此脚本不起作用,因为只要if执行第一个语句,第二个if语句的条件就变为true,因此也会执行,因此没有任何更改.
PS这不是作业.我使用的软件只允许1行语句.
Tra*_*ebb 21
三元运算符:
condition ? execTrue() : execFalse();
Run Code Online (Sandbox Code Playgroud)
这相当于:
if (condition) {
execTrue();
}
else {
execFalse();
}
Run Code Online (Sandbox Code Playgroud)
您可以在1行写一个if/else,只是不要按Enter键...
if (condition) { execTrue(); } else { execFalse(); }
Run Code Online (Sandbox Code Playgroud)
此外,您可以在一行中编写任意复杂性的任何语句:
if(condition1) { exec1(); } else if(condition2) { exec2(); } else { execFalse() }
Run Code Online (Sandbox Code Playgroud)
编辑:我要问:wtf那种可怕的软件只允许你写一行语句?这是某种形式的折磨吗?这听起来非常悲惨
编辑2:如果您遇到第二个if语句执行的问题,您希望强加互斥,即使用else if而不是仅仅if在每个后续条件
-tjw
Mar*_*rth 10
将值保存到另一个变量中.
function hideTable(){
var table = document.getElementById('PDemo');
var width = table.style.width;
if(width == "50%") table.style.width = "150px";
if(width == "150px") table.style.width = "50%";
}
Run Code Online (Sandbox Code Playgroud)
if(/*condition a*/){/*statements a*/}else if(/*condition b*/){/*statements b*/}else{/*statements c/*}
Run Code Online (Sandbox Code Playgroud)
仅限一行.
如果你不能使用else(那很疯狂),请使用switch.
switch (table.style.width) {
case '50%':
...
break;
case '150px':
...
break;
}
Run Code Online (Sandbox Code Playgroud)