【问题标题】:Syntax Error in if/else Statement [closed]if/else 语句中的语法错误[关闭]
【发布时间】:2013-03-15 11:57:24
【问题描述】:

我在这段代码中遇到语法错误,但我不知道为什么。

$(".choose-one .monthly, .choose-one .yearly").live("click", function() {
    billing_selection();
});

function billing_selection() {
    if($(this).hasClass("yearly") {
        $(this).addClass("selected");
        $(".billing-options-hidden option:eq(1)").attr('selected', 'selected');
    } else {
        $(this).addClass("doSomething");
    }
}

这是我的第一篇文章,请温柔。

【问题讨论】:

  • 请注意,您的函数中的this 并不是指被点击的元素。
  • 这是我的下一个问题。为什么this 不引用点击的对象?
  • 因为你是在handler的上下文中调用函数,this这里指的是元素,你可以编码,$(".choose-one .monthly, .choose-one .yearly").live("click", billing_selection)。话虽如此,请注意 live 方法已弃用,您可以改用 on 方法。

标签: javascript jquery function logic syntax-error


【解决方案1】:

missed右括号

  if($(this).hasClass("yearly"))
                               ^

【讨论】:

    【解决方案2】:

    添加缺少的括号:

    // --------------------------v
    if($(this).hasClass("yearly")) {
    

    【讨论】:

      【解决方案3】:

      你没有正确关闭if

         function billing_selection() {
          if($(this).hasClass("yearly") ){
              $(this).addClass("selected");
              $(".billing-options-hidden option:eq(1)").attr('selected', 'selected');
          } else {
              $(this).addClass("doSomething");
          }
      }
      

      【讨论】:

        最近更新 更多