【问题标题】:Jquery - Multiplying my two classes give no resultsJquery - 将我的两个类相乘没有结果
【发布时间】:2016-05-13 16:45:31
【问题描述】:
<div id="container">
  <div class="jumbotron" id="group">
    <form class="form-inline">
      <div class="form-group">
        <label for="groupNumber">Group:</label>
        <input type="text" class="groupNumber" />
      </div>
      <div class="form-group inputTop">
       <label for="quantity">Quantity:</label>
       <input type="text" class="quantity" />
      </div>
     <div class="form-group inputTop">
       <label for="systemPrice">System Price:</label>
       <input type="text" class="systemPrice" />
     </div>
     <div class="form-group">
        <label for="groupTotal">Group Total:</label>
       <input type="text" class="groupTotal" />
     </div>
   </form>

   <div class="row specs" id="pasted" contenteditable="true"></div>

   </div>
 </div>

$(document).ready(function() {
  $('.inputTop input').keyup(multInputs);

  function multInputs() {
    $('.inputTop').each(function() {
        var $quantity = $('.quantity', this).val();
        var $systemPrice = $('.systemPrice', this).val();
        var $groupTotal = ($quantity * 1) * ($systemPrice * 1)
    $('.groupTotal', this).text($groupTotal);
    });
   }
});

JS 小提琴:https://jsfiddle.net/waynebunch/jh6uhL1p/5/

我已经盯着这个看了一段时间,没有发现任何问题。基本上,我正在尝试使用 JQuery 将 var $quantity 乘以 var $systemPrice 并将结果显示在 var $groupTotal 中。这些将有多个“组”。有人可以告诉我我在这里做错了什么,或者我是否离题?谢谢!

【问题讨论】:

  • 仅供参考,您不需要:($quantity * 1) * ($systemPrice * 1)。你可以只做$quantity * $systemPrice,因为无论哪种方式,乘法运算符都会自动将字符串转换为数字。
  • @squint 你是对的,谢谢!

标签: javascript jquery multiplication


【解决方案1】:

替换:

$('.groupTotal', this).text($groupTotal);

与:

$('.groupTotal', this).val($groupTotal);

【讨论】:

  • 我讨厌它看起来那么容易。谢谢,这已经解决了!
【解决方案2】:

应该是

$('.groupTotal', this).val($groupTotal);

鉴于.groupTotalinput

【讨论】:

    【解决方案3】:

    你应该试试这个功能:

     function multInputs() {
    
    $('.group').each(function() {
      var $quantity = $('.quantity', this).val();
      var $systemPrice = $('.systemPrice', this).val();
      var $groupTotal = (parseInt($quantity) * 1) * (parseInt($systemPrice) * 1)
    
      if(isNaN($groupTotal))
        $('.groupTotal', this).val('');
      else
        $('.groupTotal', this).val($groupTotal);  
    });
    

    希望你能得到你想要的结果

    【讨论】:

      【解决方案4】:

      除了其他人所说的(使用val 而不是text)之外,您还在错误的选择器上调用了each 方法。

      quantitysystemprice 的元素不是inputtop 的元素的子元素。相反,使用

      $(".form-inline").each( ... );
      

      【讨论】:

      • 知道了,谢谢!这绝对有助于我克隆它看起来像的组。
      猜你喜欢
      • 2014-01-11
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多