尝试计算已检查tr的总和。
var totalqt=0;
totalqt=totalqt + $(this).closest("tr").find("#qt").text();
它获取正确的值但不像数字一样使用它。例如,如果第一个td的值为1,第二个td的值为2,则警告12而不是1 + 2。尝试了text()和html()。结果相同。怎么了?
答案 0 :(得分:5)
totalqt = totalqt + parseInt($(this).closest("tr").find("#qt").text(), 10);
答案 1 :(得分:4)
您需要将值解析为数字,这将使用parseInt(val,base)或parseFloat(val,base):
在您的示例中,您将使用:
var totalqt=0;
totalqt=totalqt +parseInt( $(this).closest("tr").find("#qt").text(), 10);
答案 2 :(得分:3)
您需要将字符串解析为int,以便您可以像使用int一样使用它。
var totalqt=0;
totalqt=totalqt + parseInt($(this).closest("tr").find("#qt").text(), 10);
10是因为:
问题在于parseInt如何猜测你号码的基数。读 parseInt规范。它尝试了,而不是总是默认为基数10 猜测,如果第一个字符是'0',它认为你想要 解析为八进制数,如果它以'0x'开头,它会认为你 想要十六进制。
答案 3 :(得分:2)
text()
返回一个字符串。你想要一个号码。使用parseInt
:
var totalqt = 0;
totalqt = totalqt + parseInt($(this).closest("tr").find("#qt").text(), 10);