首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >if语句永远不会到达else分支- "if (x = y)“

if语句永远不会到达else分支- "if (x = y)“
EN

Stack Overflow用户
提问于 2013-01-17 07:12:31
回答 3查看 184关注 0票数 1

我有一个奇怪的问题:

下面是一个JavaScript函数

代码语言: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元素选择的选项值,并显示适当的message...or。问题是,无论选择什么,它总是显示1。

另一方面,下面的工作是有效的。

代码语言:javascript
复制
function calculateSum()
     {
       var e2 = document.getElementById('hotel_names');
       var selValue2 = e2.options[e2.selectedIndex].value;

       alert(selValue2);
     }

第二个函数在您每次从选择中选择一个选项时显示正确的数字。你知道为什么第一个不起作用吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-17 07:13:30

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

代码语言:javascript
复制
  if (selValue2 == '1'){
    ...
  }

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

代码语言:javascript
复制
selValue2 = '1'
票数 8
EN

Stack Overflow用户

发布于 2013-01-17 07:14:01

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

代码语言:javascript
复制
selValue2 == '1'

分配是

代码语言:javascript
复制
selValue2 = '1'
票数 3
EN

Stack Overflow用户

发布于 2013-01-17 07:17:36

只是对其他答案的一个小补充。我建议使用===而不是==进行比较。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14369591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档