【问题标题】:Jquery shorthand IF-ELSEjQuery 速记 IF-ELSE
【发布时间】:2013-07-18 23:29:12
【问题描述】:

我需要用 JQuery 做一个速记 IF-ELSE。 我的代码:

    $('#somediv').val() != 0 ? $('#somediv').toggleClass('class1') : $('#somediv').toggleClass('class2');

简单的代码,但不起作用。请帮忙? 提前致谢

编辑: 这项工作:

if ($('#somediv').val() != 0) {
    $('#somediv').toggleClass('class1');
}else{
    $('#somediv').toggleClass('class2');
}

但速记并不...耐心等待

【问题讨论】:

  • 您想检查#somediv 内容是否为空并做相应的处理吗?
  • 仅供参考,您尝试使用的 if/else “速记”称为 ternary 运算符,不是 jQuery 提供的。它是基本 Javascript 语法的一部分。
  • div包含一个变量,只能容纳1或0个实时监控

标签: jquery css html shorthand


【解决方案1】:

如果 somediv 实际上是一个 div,正如名称所示,您应该使用 text()html() 而不是 val(),因为值仅对输入元素有效。

【讨论】:

  • div 包含一个只能容纳 1 或 0 实时监控的变量,我尝试过 text() 和 html() 但不起作用...
  • 正如 Claudio 指出的,val() 不适用于 div,仅适用于 input 字段。在此处查看示例:jsfiddle
  • @SimoneMelloni:你能检查一下这个 jsfiddler 看看这是否是你要找的吗? jsfiddle.net/7psC6
  • 首先,您在上面发布的代码确实有效。你可以在这个小提琴中看到它:http://jsfiddle.net/3D6bn/1/。但是,它不会像您期望的那样工作。您将始终仅切换 class2,因为 $('#somediv').val() 将始终为 ''(空字符串) - 出于 Claudio 上述原因。
【解决方案2】:

您想使用 text() 来获取 div 的值,前提是它不是输入。如果您提供 #somediv 的样子,那将有所帮助。

 $('#somediv').text() != 0 ? $('#somediv').toggleClass('class1') : $('#somediv').toggleClass('class2');

简写“if-else”称为ternary,可以与香草javascript一起使用

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 2016-10-06
    • 2011-07-17
    • 2016-12-26
    • 2016-05-15
    • 2014-09-07
    • 2013-04-08
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多