1

我有这个奇怪的问题:

下面是一个 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);
     }

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

4

3 回答 3

8

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

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

通过仅使用一个,您实际上所做的就是为变量赋值。这称为赋值运算符。

selValue2 = '1'
于 2013-01-16T23:13:30.060 回答
3

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

selValue2 == '1'

分配是

selValue2 = '1'
于 2013-01-16T23:14:01.130 回答
0

只是添加到其他答案的一小部分。我建议使用===而不是==进行比较。

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

于 2013-01-16T23:17:35.673 回答