在jquery中进行数学运算

Making math operation in jquery

提问人:Filippo Canino 提问时间:3/29/2022 最后编辑:Filippo Canino 更新时间:3/29/2022 访问量:77

问:

我是jQuery的新手,我不明白如何完成我的代码

我有 2 个输入类型编号,id=TA1 和 id=TA2。我有一个选择选项可以在“+”、“-”、“/”和“*”之间进行选择,这是 id=op。 现在,在我的jquery函数中,我应该写什么才能让它工作?我知道在 js 中有 eval(),但我不知道如何在 jquery 中做到这一点......

var Calcolatrice = function (args) {
    this.args = args;
};
Calcolatrice.prototype.calc = function (x, y, z) {
    var x = $("#TA1").val(value);
    var y = $("#TA2").val(value);
    var z = $("#op").val(value);
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    /* display: none; <- Crashes Chrome on hover */
    -webkit-appearance: none;
    margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}
.black {
    background-color: black;
}
<body class="black">
    <div class="flex flex-row justify-evenly py-32">
      <div class="flex flex-col">
        <input type="number" id="TA1">
      </div>
      <div class="flex flex-col">
        <select id="op">
          <option label="+">+</option> 
          <option label="-">-</option> 
          <option label="/">/</option> 
          <option label="*">*</option>
        </select>
      </div>
      <div class="flex flex-col">
        <input type="number" id="TA2">
      </div>
    </div>
    <div class="flex flex-row justify-center">
      <div class="flex fllex-col">
        <textarea name="risultato" id="risultato" cols="30" rows="1">
        </textarea>
      </div>
    </div>
  </body>

由于我使用了 Tailwind 和 Flexbox,因此此代码段不会显示最终结果,但我没有将它们放入代码段代码中

JavaScript jQuery 数学

评论

0赞 Pointy 3/29/2022
该语句不会执行任何操作$("#risultato").val();
0赞 Filippo Canino 3/29/2022
我知道。我忘了删除它。我试着思考之后该写些什么。这将是我插入数学运算结果的代码部分
1赞 phuzi 3/29/2022
当你真正指的是 JavaScript 时,不要说 jQuery。
0赞 Filippo Canino 3/29/2022
好吧,如果是 JS,我会使用 eval()。我今天开始在工作中学习,并为工作 jQuery 学习,我一无所知,如果不是事实,您使用 $(“#id”)....
1赞 Justinas 3/29/2022
这回答了你的问题吗?可变运算符是否可行?

答:

0赞 mmh4all 3/29/2022 #1

你可以像这样做

    $("input").on('input',() => {
    var x = $("#TA1").val();
    var y = $("#TA2").val();
    var z = $("#op").val();
    if(x && y && z){
        $("#risultato").val(eval(`${x}${z}${y}`));
    }
  });
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    /* display: none; <- Crashes Chrome on hover */
    -webkit-appearance: none;
    margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
}
.black {
    background-color: black;
}
    <div class="flex flex-row justify-evenly py-32">
        <div class="flex flex-col">
          <input type="number" id="TA1">
        </div>
        <div class="flex flex-col">
          <select id="op">
            <option label="+">+</option> 
            <option label="-">-</option> 
            <option label="/">/</option> 
            <option label="*">*</option>
          </select>
        </div>
        <div class="flex flex-col">
          <input type="number" id="TA2">
        </div>
      </div>
      
      <div class="flex flex-row justify-center">
        <div class="flex fllex-col">
          <textarea name="risultato" id="risultato" cols="30" rows="1">
          </textarea>
        </div>
      </div>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>

评论

0赞 Filippo Canino 3/29/2022
谢谢伙计,非常感谢,你让我的一天<3 <3 <3
0赞 Filippo Canino 3/29/2022
可悲的是,我不能点赞,我没有 15 个声誉。只是一个简单的问题,我们必须在这里放置脚本吗?我必须删除我已经写的小脚本吗?我必须将其粘贴到原型中吗?
0赞 mmh4all 3/30/2022
是的,只需替换您的脚本即可