javascript - 为什么我的倍数无法在JavaScript中运行?

原文 标签 javascript html if-statement

function myFunction2() {
  var booloo = document.getElementById('texa').value;
  if (!document.getElementById('texa').value) {
    //var res = booloo.lastcharAt(booloo.value);
    console.log("nothing");
  } else if (booloo.substring(booloo.length - 1) == "+" || "-" || "*" || "/") {
    console.log("String Contain Operator at last");
  } else if (booloo.substring(booloo.length - 1) == "0" || "1" || "2" || "3" || "4" || "5" || "6" || "7" || "8" || "9") {
    console.log("String contain Operand at last");
  }
}

<html>

<body>
  <input types="text" id="texa">
  <button onclick="myFunction2()">Try it</button>
</body>

</html>

我试图在代码中使用多个if-else块,但在第三个块(“字符串最后包含操作数”)这不起作用,只有剩下的两个块工作正常。我的目标是,如果用户类型值如10+值,则它进入运算符最后包含的第二个块。如果假设用户类型为10+2,那么它必须进入第三个块,比如(“最后包含操作数”),但问题是它不会进入第三个块。

最佳答案

这不是比较的方法。

if(booloo.substring(booloo.length - 1) == "+" || "-" || "*" || "/")

应该写为
if(booloo.substring(booloo.length - 1) == "+" 
   || booloo.substring(booloo.length - 1) == "-" 
   || booloo.substring(booloo.length - 1) == "*" 
   || booloo.substring(booloo.length - 1) == "/")

您的现有代码将被这样评价:
检查booloo.substring(booloo.length-1)=“+”
检查“—”(总是被推回为真,语句的其余部分不会被测试,但我还是写了出来)
检查是否有“*”(也总是被求值为true)
检查是否“/”(同时也始终为真)

关于javascript - 为什么我的倍数无法在JavaScript中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42948819/

相关文章:

javascript - $ index在Nativescript中不起作用

javascript - 将JSON值加载到各自的HTML元素中

javascript - getElementsByName()不起作用? [复制]

c++ - 可以在各种 'if'语句中做同样的事情吗?

javascript - 检查JavaScript中多个变量是true还是false

javascript - 当我在引用资料/Cookies中找到它时,没有显示cookie

javascript - Node.js调用HTML时,外部Javascript和CSS不会影响HTML

javascript - 如何使向上滑动/向下滑动效果自举标签 Pane

javascript - 使用HTML5 Canvas以编程方式绘制此模式

javascript - 比较二维数组和一维数组的值