我试图根据特定的类检索td中的所有值的总和。代码不会抛出任何错误,但我的总和导致“0”。
必须以特定的方式指定数值吗?我在这里看到一些其他的答案,从那里模仿了代码,我没有看到我和他们之间的任何真正的区别,所以我很困惑,为什么我的工作。
这是一个教程,我随之参考:http://viralpatel.net/blogs/2009/07/sum-html-textbox-values-using-jquery-javascript.html
这是我的javascript
$(document).ready(function(){ $('.price').each(function() { calculateSum(); }); }); function calculateSum() { var sum = 0; //iterate through each td based on class and add the values $(".price").each(function() { //add only if the value is number if(!isNaN(this.value) && this.value.length!=0) { sum += parseFloat(this.value); } }); $('#result').text(sum); };
这是我的html
<table border="1"> <tr> <th>Item</th> <th>Price</th> </tr> <tr> <td>Banana</td> <td class ="price">50</td> </tr> <tr> <td>Apple</td> <td class ="price">100</td> </tr> </table> <div id="result"></div>
解决方法
您希望使用
text()
而不是this.value(因为< td> s没有“值”):
var sum = 0; // iterate through each td based on class and add the values $(".price").each(function() { var value = $(this).text(); // add only if the value is number if(!isNaN(value) && value.length != 0) { sum += parseFloat(value); } });
此外,您多次循环使用.price元素(调用calculateSum)。你可以替换
$(document).ready(function(){ $('.price').each(function() { calculateSum(); }); });
同
$(calculateSum);