【问题标题】:jQuery Hide/Show if conditional statementjQuery 隐藏/显示 if 条件语句
【发布时间】:2013-12-12 10:58:48
【问题描述】:

我经常这样做:

var condition = true;
if (condition === true) {
    $('#condition_dependancy').show();
} else {
    $('#condition_dependancy').hide();
}

这在语法上可以更简洁吗?我可以自己写:

$('#condition_dependancy').hidden(condition);

但我只是想知道是否有内置的东西。

【问题讨论】:

    标签: jquery dom


    【解决方案1】:

    你可以使用toggle:

    var condition = true;
    $('#condition_dependancy').toggle(condition);
    

    旁注:不要使用类似的东西

    if (condition === true)
    

    除非condition 有可能具有不同的“真实”* 值,并且您只希望表达式为真,如果它恰好是true,而不是如果它只是真实的。一般来说,== (boolean) 和(在 JavaScript 中)=== (boolean) 只是噪音(尽管在 JavaScript 中存在使用 === 版本的极端情况)。

    喜欢:

    if (condition)
    

    和(对于== false / === false 的情况):

    if (!condition)
    

    * “truthy”:在 JavaScript 中,类型可以被表达式强制转换。在任何需要布尔值的地方,如果你使用不是布尔值的东西,它就会被强制为一个。强制为true 的东西称为“真实”值;强制为false 的东西称为“虚假”值。错误值为0""NaNundefinednull,当然还有false。其他一切都是真实的。

    【讨论】:

    • 谢谢!不知道切换可以接受这个参数。我在我的语法中包含了 '=== true' 以(糟糕地)表达这可以是任何正在评估的表达式,而不仅仅是一个布尔值 - 真的很傻。但这对于任何阅读的人来说仍然是一个很好的旁注。 (我会在我的 10 分钟限制到期后立即接受这个答案!)
    【解决方案2】:

    使用toggle()

    $('#condition_dependancy').toggle(condition);
    

    【讨论】:

      猜你喜欢
      • 2014-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2017-02-05
      • 1970-01-01
      • 2014-10-16
      相关资源
      最近更新 更多