从速记条件语句中获取布尔值

时间:2016-12-13 14:42:06

标签: javascript jquery

速记Javascript很棒,但我想知道是否有可能将此速记条件更进一步提供真值/假值,具体取决于条件是否通过。例如。拿这个:

plainText = "stackoverflow".encode('hex')
plainInt = long(plainText,16)
print plainInt
=> 9147256685580292608768854486903

并创建如下内容:

$('#col-URL-defaultText').css('display', ((val!==null && val!=="") ? 'none' : 'block'));

(^以上失败但希望你得到我想要达到的目的^)

4 个答案:

答案 0 :(得分:3)

将结果分配给变量并在其后使用:

var notEmpty = (val !== null && val !== '');
$(....).css('display', notEmpty ? "none" : "block");

答案 1 :(得分:0)

是的,您可以通过测试生成的显示属性是什么并将其分配给变量:

Boolean empty = $('#col-URL-defaultText').css('display', ((val!==null && val!=="") ? 'none' : 'block')).css('display')=='block';

我不确定你是否真的想在最后测试'阻止'或'无'。

答案 2 :(得分:0)

如果你真的想把所有东西都变成一行,你可以通过将所有内容包装在一个匿名函数中来滥用语法:

var notEmpty = (function(b){ $(....).css('display', b ? "none" : "block"); return b })(val !== null && val !== '');

但是,坦率地说,我更希望oryol's answer;它更具可读性。

答案 3 :(得分:0)

而不是使用函数.css('display',...) 你可以使用隐藏和显示功能,在我看来它更容易维护。

var $this = $('#col-URL-defaultText');
var empty = val !== undefined ?  $this.show() : $this.hide();