繁体   English   中英

jQuery函数不返回值

[英]jQuery function doesn't return values

我得到了错误的计算,并且该函数没有从.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跳转到下一次迭代,相当于正常循环中的continue。

 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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM