如何在Javascript中没有'else'的情况下编写IF else语句

cod*_*441 6 javascript

我不能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)


Sea*_*oyd 7

if(/*condition a*/){/*statements a*/}else if(/*condition b*/){/*statements b*/}else{/*statements c/*}
Run Code Online (Sandbox Code Playgroud)

仅限一行.


ale*_*lex 7

如果你不能使用else(那很疯狂),请使用switch.

switch (table.style.width) {

    case '50%':
       ...
       break;

    case '150px':
       ...
       break;

}
Run Code Online (Sandbox Code Playgroud)