【问题标题】:My if and else statement always think it's -and [duplicate]我的 if 和 else 语句总是认为它是 -and [重复]
【发布时间】:2019-04-17 04:12:40
【问题描述】:

我的页面上有一个带有 -and 或 -or 的选择器。我想根据用户使用 -And 或 -Or 选择的内容更改 div 的内容。

我的 if 和 else 语句现在不能正常工作,它几乎可以正常工作,只是总是添加 -And。看起来好像它总是看到 - 而且?

我第一次尝试使用 if 和 else 语句,我认为我犯了错误。

<script>
function Andor' + count + '(selTag) {  
  var x = selTag.options[selTag.selectedIndex].text;  
  if (x = '-and'){ 
    document.getElementById("and-or-' + count + '").innerHTML = " " + x + " ";
  } else {
    document.getElementById("and-or-' + count + '").innerHTML = " " + x + " (";
 }
}
</script>

【问题讨论】:

  • x == '-and' 它的两个等号
  • 在 JS 中有两种等同的方式。 ======= 运算符比较相等性,同时还进行类型转换(如果适用)。另一方面,=== 将避免类型转换,例如1===1 //真 1==1 //真 1===2 //假 1==2 //假 "1"===1 //假 "1"==1 //真

标签: javascript jquery


【解决方案1】:

您使用一个=,即“分配”。你想要===(或==)作为'等于'。

您执行相同的操作:var example = 'foo';。您将值设置为一个字符串 ('-and'),它总是导致为真,这使它看起来像是真的。 你想要的是example=='foo' 检查example 的内容是否等于'foo'。

推荐阅读材料:https://codeburst.io/javascript-double-equals-vs-triple-equals-61d4ce5a121a

【讨论】:

  • 我认为 = 是“等于”,现在它工作起来很容易!谢谢你。我在谷歌上搜索了材料,但没有类似的东西。再次感谢您。
  • @baswijdenesdotcom 这取决于语言,大多数 C 风格的语言使用== 进行比较。
  • 我从不使用其他语言,然后是 PowerShell。这对我来说是全新的。
  • @baswijdenesdotcom 那么我推荐你 javascript.info 很棒的网站来学习很多关于 javascript 的知识。
猜你喜欢
  • 2020-10-25
  • 2022-11-17
  • 2017-09-11
  • 2013-04-05
  • 1970-01-01
  • 2016-05-10
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多