我得到了错误的计算,而且函数没有从.investment
元素返回3个值,这样我就可以计算它们并将它们输出到{{1元素。我在这里做错了什么?
.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();

答案 0 :(得分:6)
问题是你试图从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>