我不能在我的脚本中使用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%";
}
此脚本不起作用,因为只要执行第一个if
语句,第二个if
语句的条件就会变为true,因此也会执行,因此不会发生任何更改。
P.S。这不是作业。我使用的软件只允许使用1行语句。
答案 0 :(得分:22)
三元运营商:
condition ? execTrue() : execFalse();
这相当于:
if (condition) {
execTrue();
}
else {
execFalse();
}
你可以在1行写一个if / else,只是不要输入...
if (condition) { execTrue(); } else { execFalse(); }
此外,您可以在一行中编写任意复杂性的任何语句:
if(condition1) { exec1(); } else if(condition2) { exec2(); } else { execFalse() }
编辑:我不得不问:wtf那种可怕的软件只允许你写一行语句?这是某种形式的折磨吗?这听起来非常悲惨
编辑2:如果您遇到第二个if语句执行的问题,您希望强制互斥,即使用else if
而不仅仅{{1在每个后续条件
-tjw
答案 1 :(得分: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%";
}
答案 2 :(得分:7)
if(/*condition a*/){/*statements a*/}else if(/*condition b*/){/*statements b*/}else{/*statements c/*}
仅限一行。
答案 3 :(得分:7)
如果您无法使用else
(并且疯狂),请使用switch
。
switch (table.style.width) {
case '50%':
...
break;
case '150px':
...
break;
}
答案 4 :(得分:0)
为了唯一性而使用while循环。
while (!resized){
if(width == "50%") {table.style.width = "150px";resized=true;break};
if(width == "150px") table.style.width = "50%";resized=true;break};
resized=true;
}
您使用的是什么软件?
答案 5 :(得分:0)
使用&&操作员称为短路操作员。它将根据第一个操作数的值返回第二个操作数的值。
例如:(解释:如果permArray中存在' profile'权限,则加载用户的个人资料)
isPermitted(permArray,'profile') && loadProfile();
&&运算符对于在访问其属性之前检查空对象也很有用。例如......
var name = person && person.getName();