Javascript 如何获取内部的数值<;td>;

Javascript 如何获取内部的数值<;td>;,javascript,jquery,Javascript,Jquery,正在尝试计算已检查tr的总和 var totalqt=0; totalqt=totalqt + $(this).closest("tr").find("#qt").text(); 它得到正确的值,但不像数字那样使用它。对于ex,如果第一个td的值为1,第二个td的值为2,则会向12发出警报,而不是1+2。尝试了text()和html()。同样的结果。怎么了?您需要将字符串解析为int,以便可以像int一样使用它 totalqt = totalqt + parseInt($(this).clos

正在尝试计算已检查tr的总和

var totalqt=0;
totalqt=totalqt + $(this).closest("tr").find("#qt").text();

它得到正确的值,但不像数字那样使用它。对于ex,如果第一个td的值为1,第二个td的值为2,则会向12发出警报,而不是1+2。尝试了text()和html()。同样的结果。怎么了?

您需要将字符串解析为int,以便可以像int一样使用它

totalqt = totalqt + parseInt($(this).closest("tr").find("#qt").text(), 10);
var totalqt=0;
totalqt=totalqt + parseInt($(this).closest("tr").find("#qt").text(), 10);
第十个原因是:

问题在于parseInt如何猜测数字的基数。阅读 parseInt规范。它不总是默认以10为基数,而是尝试 猜测,如果第一个字符为“0”,则它认为您需要 解析为一个八进制数,如果它以“0x”开头,它认为 我想要十六进制

text()
返回一个字符串。你想要一个号码。使用
parseInt

var totalqt = 0;
totalqt = totalqt + parseInt($(this).closest("tr").find("#qt").text(), 10);

您需要将值解析为一个数字,这将使用parseInt(val,base)或parseFloat(val,base):

在您的示例中,您将使用:

var totalqt=0;
totalqt=totalqt +parseInt( $(this).closest("tr").find("#qt").text(), 10);

选中tr是什么意思,你能发布一个HTML的快速片段吗?它总是值得指定parseInt的基数,例如parseInt(val,10),否则默认假设有时不能是10,最终可能是八进制值等。你不应该有多个具有相同ID的元素,所以你应该能够执行
$(“#qt”).text()
。与其他答案不同,此答案还使用第二个参数指定数字转换的基数,因此比其他答案安全得多。