jQuery 函数不返回值

jQuery function doesn't return values

本文关键字:返回值 函数 jQuery      更新时间:2023-09-26

我得到了错误的计算,该函数没有从.investment元素返回 3 个值,以便我能够计算它们并将它们输出到.payout元素中。我在这里做错了什么?

function investmentArray() {
  $('.investment').each(function() {
    var text = $(this).text().slice(0, -2);
    text = parseFloat(text.replace(/,/g, ''));
    text = Number(text);
    return text;
  });
};
function payoutCalc() {
  var i = investmentArray();
  return i * 1.8;
}
var payoutArray = function() {
  var el = $('.payout');
  el.each(function() {
    var result = Number(payoutCalc()).toFixed(2);
    $(this).html(result + " $");
  });
}
payoutArray();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <th>Investment</th>
    <th>Payout</th>
  </tr>
  <tr>
    <td class="investment">1,937.00 $</td>
    <td class="investment">285.00 $</td>
    <td class="investment">1,926.00 $</td>
  </tr>
  <tr>
    <td class="payout"></td>
    <td class="payout"></td>
    <td class="payout"></td>
  </tr>
</table>

问题是你试图从 jquery .each()循环返回。您需要传递索引并获取元素,而不是使用循环。

要中断 $.each 循环,您必须在循环回调中返回 false。 返回 true 会跳到下一次迭代,相当于正常循环中的继续。

function investmentArray(c) {
  text = $('.investment').eq(c).text().slice(0, -2);
  text = parseFloat(text.replace(/,/g, ''));
  text = Number(text);
  return text;
};
function payoutCalc(c) {
  var i = investmentArray(c);
  return i * 1.8;
}
var payoutArray = function() {
  var el = $('.payout');
  el.each(function(i, val) {
    var result = Number(payoutCalc(i)).toFixed(2);
    $(this).html(result + " $");
  });
}
payoutArray();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <th>Investment</th>
    <th>Payout</th>
  </tr>
  <tr>
    <td class="investment">1,937.00 $</td>
    <td class="investment">285.00 $</td>
    <td class="investment">1,926.00 $</td>
  </tr>
  <tr>
    <td class="payout"></td>
    <td class="payout"></td>
    <td class="payout"></td>
  </tr>
</table>