Javascript:如果声明 - 两个变量?

时间:2016-09-14 14:28:05

标签: javascript jquery if-statement input conditional

我试图检查水平是否是某种程度,程度是什么,然后总计是某个领域的值。该代码仅适用于示例1,这使我认为我需要变量中的程度。

示例:

  • level = 1; degree = Terminal; 1_T = 205
  • level = 2; degree = NonTerminal; 2_NT = 230
 $(document).ready(function(){
      $(".level input" && ".degree input").change(function(){
        var level = $(".level input").val();

        if (level == "1" || degree == "Terminal"){
          $(".total input").val($(".1_T input").val());
        }
        else if (level == "2" || degree == "NonTerminal") {
          $(".total input").val($(".2_NT input").val());
        }
        });
    })

我做错了什么?我试图弄清楚是否有一种方法来定义第二个变量,就像第3行我做的那样,应该可能有一些定义度数的东西。

2 个答案:

答案 0 :(得分:2)

$(function(){
  $(".level input, .degree input").change(function(){
    var level  = $(".level input").val();
    var degree = $(".degree input").val();

    // Perhaps you want (level=="1" && degree=="Terminal") ?
    if (level == "1" || degree == "Terminal"){
      $(".total input").val($(".1_T input").val());
    }
    else if (level == "2" || degree == "NonTerminal") {
      $(".total input").val($(".2_NT input").val());
    }
  });
})

答案 1 :(得分:1)

你必须对你的变量degree说明,否则它会失败,因为如果在你使用它之前未定义度数,它的值将是undefined

你的代码应该是:

$(document).ready(function(){
  $(".level input, .degree input").change(function(){
    var level = $(".level input").val();
    var degree = $(".degree input").val();

    if (level == "1" || degree == "Terminal"){
      $(".total input").val($(".1_T input").val());
    }
    else if (level == "2" || degree == "NonTerminal") {
      $(".total input").val($(".2_NT input").val());
    }
    });
})
  • 第2行:更改了jQuery选择器。你的只匹配第一个字符串 - > ".level input"然后没有计算学位是否改变
  • 第4行:我们定义变量度以供以后使用

为什么它适用于示例1?

javascript布尔运算是懒惰检查的。由于您的第一次测试level == "1"一次为True,因此无需关注degree是否已定义。但在例2中,第一次测试失败,并且未定义degree变量。