三元运算符的基本格式如下:
条件表达式?表达式一:表达式二 问号(?)之前的表示判断的条件,如果这个条件为真,则执行问号后边的语句。如果判断条件不成立,则执行冒号后边的语句
看下面的两个效果相同的示例,一个是if else 完成,一个用三元运算来完成
function changeColor(){
var oDiv=document.getElementById('div1');
if(oDiv.style.backgroundColor=='black'){//注意==号和=号的区别
oDiv.style.backgroundColor='red';
}else {
oDiv.style.backgroundColor='green';
}
}
function changeColor2(){//这个用三元运算符 ? :
var oDiv=document.getElementById('div1');
//问号(?)之前的表示判断的条件,如果这个条件为真,则执行问号后边的语句。如果判断条件不成立,则执行冒号后边的语句
oDiv.style.backgroundColor=='black'?oDiv.style.backgroundColor='red':oDiv.style.backgroundColor='green';//这句话相当于上个方法中的if else
//也可以写成这样以下这两种方式
oDiv.style.backgroundColor=oDiv.style.backgroundColor=='black'?'red':'green';
/*上面一句的意思是:如果oDiv.style.backgroundColor=='black'成立,则把'red'返回,
否则把'green'返回。先执行三元运算符,三元运算执行完成后把三元运算
的返回值赋给oDiv.style.backgroundColor。因为赋值运算符(=)的优先级比较低,所以在这里最后执行赋值运算,把右侧的结果赋给左侧
*/
oDiv.style.backgroundColor=(oDiv.style.backgroundColor=='black'?'red':'green');
//这个同上,加了个()可读性更强,效果同上一句代码
}
可以看效果的地址请点击:http://www.zhufengpeixun.cn/b/forum.php?mod=viewthread&tid=61&extra=