【问题标题】:jQuery switch-case not working, syntax issue?jQuery switch-case 不工作,语法问题?
【发布时间】:2012-02-08 07:02:31
【问题描述】:

为什么这个开关盒不起作用?我已经尝试了所有可能的语法,但它只是不起作用。还是在这种情况下使用 switch-case 是错误的方法?

jQuery('#main input').blur(function() {
    switch(jQuery(this).attr('name') {
        case 'email':
            jQuery(this).val('That's you e-Mail adress.');
            break;
        case 'nickname':
            jQuery(this).val('That's your nickname.');
            break;
    }
});

请注意:我在非冲突模式下使用 jQuery,这就是为什么我使用 jQuery 而不是 $

【问题讨论】:

  • 您缺少)。使用 JSLint 或 JSHint 之类的工具来查找此类问题。
  • 反引号 (`) 应该用于内联代码。如果要发布多行,请突出显示代码,然后单击花括号按钮。它将对其进行格式化以便于阅读。
  • 谢谢,以后会这样的。
  • 欢迎来到 Stack Overflow,斯文!如果您在下面看到对您有帮助的答案,则应该对其进行投票。不要忘记通过单击该问题左侧的大复选标记接受最能回答您问题的答案(如果有)。 :)

标签: jquery switch-statement


【解决方案1】:

您有两种类型的错误:

  1. 您在 switch 参数周围缺少括号 )
  2. 您没有在“那是”一词中转义撇号 (')。

更正的代码:

jQuery('#main input').blur(function() {
    switch(jQuery(this).attr('name')) { // Added a )
        case 'email':
            jQuery(this).val('That\'s you e-Mail adress.'); // Escaped the '
            break;
        case 'nickname':
            jQuery(this).val('That\'s your nickname.'); // Escaped the '
            break;
    }
});

更新:

如果您不熟悉 JavaScript 中的转义字符串(例如上面的 That's 一词),请查看以下 Stack Overflow 问题:Escaping Strings in JavaScript

【讨论】:

    【解决方案2】:

    这里有几个错误:

    switch(jQuery(this).attr('name') {
    

    缺少右括号。应该是:

    switch(jQuery(this).attr('name')) {
    

    你应该转义这个字符串中的引号:

    jQuery(this).val('That's you e-Mail adress.');
    

    像这样:

    jQuery(this).val('That\'s you e-Mail adress.');
    

    【讨论】:

      【解决方案3】:

      在同一行中使用多个 ' 似乎会弄乱您的语法。修改如下,

      jQuery('#main input').blur(function() {
          switch(jQuery(this).attr('name')) {  // <-- fix 1: added closing )
              case 'email':
                  jQuery(this).val("That's you e-Mail adress."); // <-- fix 2: quotes 
              break;
              case 'nickname':
                  jQuery(this).val("That's your nickname.");  // <-- fix 3: quotes 
                  break;
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多