如何添加一个整数值与JavaScript(jQuery)到一个返回一个string的值?
我有一个简单的HTML块,如:
<span id="replies">8</span>
使用jquery我试图添加1的值(8)。
var currentValue = $("#replies").text(); var newValue = currentValue + 1; $("replies").text(newValue);
发生什么事情是这样出现的:
81
然后
811
不是9,这将是正确的答案。 我究竟做错了什么?
parseInt()将强制它是整数types,或者如果它不能执行转换,将会是NaN(不是数字)。
var currentValue = parseInt($("#replies").text(),10);
第二个参数(radix)确保它被parsing为一个十进制数。
parsingint是你应该在这里使用的工具,但像任何工具,它应该正确使用。 使用parseInt时,应始终使用radix参数以确保使用正确的基数
var currentValue = parseInt($("#replies").text(),10);
整数正在转换成一个string,而不是反之亦然。 你要:
var newValue = parseInt(currentValue) + 1
parseInt在IE中不适用于我。 所以我简单地使用+作为整数你想要的variables。
var currentValue = $("#replies").text(); var newValue = +currentValue + 1; $("replies").text(newValue);
关于.js的八进制误解 – 我只是用这个…
parseInt(parseFloat(nv))
经过前导零的testing后,每次都有正确的表示。
希望这可以帮助。
你的代码应该是这样的:
<span id="replies">8</span> var currentValue = $("#replies").text(); var newValue = parseInt(parseFloat(currentValue)) + 1; $("replies").text(newValue);
黑客N技巧
增加一个你可以做的事情
var newValue = currentValue ++;
var month = new Date().getMonth(); var newmon = month + 1; $('#month').html((newmon < 10 ? '0' : '') + newmon );
我简单地解决了你的月问题,getMonth数组从0到11开始。
您可以将variables乘以1来强制JavaScript将variables转换为您的数字,然后将其添加到您的其他值。 这是有效的,因为乘法不会因为加法而过载。 有人可能会说这不像parseInt清楚,但它是一种方法,它还没有被提及。
简单地说,在文本值之前添加一个加号
var newValue = +currentValue + 1;