用于方法调用的Javascript三元运算符

Javascript ternary operators for method calls

本文关键字:三元 运算符 方法 调用 Javascript 用于      更新时间:2023-09-26

我希望能够做到这一点:

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)

您可以使用这个:

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

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

一般来说,

<any expression>.property

相当于:

<any expression>['property']

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

但实际上我讨厌这种做法。您也可以使用jQuery.thoggle()

jQuery有一个可以执行您想要的操作的方法,称为toggle():

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