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

标签 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)

最佳答案

你可以使用这个:

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

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

一般来说,

<any expression>.property

相当于:

<any expression>['property']

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

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

关于用于方法调用的 Javascript 三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417206/

相关文章:

powershell - PowerShell 中的三元运算符

JQuery IE 生涩幻灯片动画

javascript - 数据表:使用行分组,如何获取每个分组行的计数?

javascript - Bootstrap 3 Accordion 在折叠时保持打开状态

c++ - 条件运算符中的返回语句

c# - 三元运算符难读

javascript - 关闭模式后如何重置或设置为 <select> 中默认选择的 <option>

javascript - 动态验证 HTML

javascript - 是的,当 .required() 为 false 时,会继续在同一个属性上运行验证器

javascript - 如何在 Shiny 应用程序中嵌入 Twitter 时间线