方法调用的Javascript三元运算符

时间:2013-07-02 04:03:41

标签: javascript jquery conditional-operator

喜欢能够做到这一点:

var b = $(this).is(':checked')
$('.perspective-col'). (b) ? show() : hide()

而不是

var b = $(this).is(':checked')
if(b) {    
    $('.perspective-col').show() 
} else {
    $('.perspective-col').hide()
}

我是否希望过多?或者是否有一些我还没有找到的精彩javascript语法?或者我是否认为到目前为止JQuery中不存在这样的事情? (我正在使用JQuery 1.9.0)

2 个答案:

答案 0 :(得分:19)

您可以使用:

var b = $(this).is(':checked')
$('.perspective-col')[b ? 'show' : 'hide']()

您可以通过将字符串传递到括号[]来调用jQuery函数。只需在里面插入一个条件来决定你传递的字符串!

一般来说,

<any expression>.property

相当于:

<any expression>['property']

不同之处在于您可以使用计算属性名称的表达式替换括号中的文字'property'。 jQuery方法只是其值恰好是函数的属性。

但我真的很讨厌这种做法。您也可以使用jQuery .toggle()

答案 1 :(得分:6)

jQuery有一个方法可以实现你想要的toggle()

$('.perspective-col').toggle(b);