if语句永远不会到达其他分支 - “if(x = y)”

时间:2013-01-16 23:12:31

标签: javascript if-statement

我有这个奇怪的问题:

以下是JavaScript函数

function calculateSum()
 {
   var e2 = document.getElementById('hotel_names');
   var selValue2 = e2.options[e2.selectedIndex].value;

   if (selValue2='1')
   {
   alert("helloworld");
   }
   else
   {
   alert("byeworld");
   }
//function closes
 }

它捕获HTML元素选择的选项值并显示相应的消息......或者它应该是。无论选择如何,它总是显示1。

另一方面,以下工作。

function calculateSum()
     {
       var e2 = document.getElementById('hotel_names');
       var selValue2 = e2.options[e2.selectedIndex].value;

       alert(selValue2);
     }

每次从选择中选择一个选项时,第二个功能显示正确的数字。 任何想法为什么第一个不起作用?

3 个答案:

答案 0 :(得分:8)

条件语句使用称为等号运算符的双等号 -

  if (selValue2 == '1'){
    ...
  }

只使用一个你正在做的事情是为变量赋值。这称为赋值运算符。

selValue2 = '1'

答案 1 :(得分:3)

您需要一个相等运算符。您正在使用赋值运算符。平等是

selValue2 == '1'
分配是

selValue2 = '1'

答案 2 :(得分:0)

添加其他答案只需要一点点。我建议使用===代替==进行比较。

它会检查所比较参数的值和类型,并且通常更快。