我有一个简单的html页面有一个按钮切换div,但是一切正常,但我的代码中有一个if-else语句,如下所示:
if (info.style.display === '' || info.style.display == 'none'){
info.style.display = 'inline-block';
} else {
info.style.display = 'none';
}
我决定使用这样的简短陈述;
info.style.display === ''||info.style.display ==='none' ? info.style.display = 'inline-block' :info.style.display = 'none';
但仍感觉太长,可能会干燥,
嗯,我有两种方法,但每种方法都不正确:
// this solution works but requires two clicks first time run:
info.style.display ==( ''||'none' ) ?info.style.display = 'inline-block' :info.style.display = 'none';
和:
// this solution doesn't work:
info.style.display == (''||'none' ? 'inline-block' : 'none');
她是>>> My Plunker <<< 对此有什么想法吗? 谢谢..
答案 0 :(得分:3)
实际上这是使用这个简短的if-else语句的正确方法
info.style.display = (info.style.display === '' || info.style.display === 'none') ? 'inline-block' : 'none';
答案 1 :(得分:2)
由于您总是分配,只需将条件放在右边;你也可以(如果你真的想)使用!info.style.display
代替info.style.display == ''
:
info.style.display = !info.style.display || info.style.display === 'none' ? 'inline-block' : 'none';
甚至利用curiously-powerful ||
operator虽然我不确定我是否会这样做:
info.style.display = (info.style.display || 'none') === 'none' ? 'inline-block' : 'none';
这是有效的,因为'' || 'none'
会产生'none'
,但'anything_else' || 'none'
会产生'anything_else'
。