速记Javascript很棒,但我想知道是否有可能将此速记条件更进一步提供真值/假值,具体取决于条件是否通过。例如。拿这个:
plainText = "stackoverflow".encode('hex')
plainInt = long(plainText,16)
print plainInt
=> 9147256685580292608768854486903
并创建如下内容:
$('#col-URL-defaultText').css('display', ((val!==null && val!=="") ? 'none' : 'block'));
(^以上失败但希望你得到我想要达到的目的^)
答案 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();