var a = 1;
var b = 2;
var c = a+b;
c
会显示为12
;但我需要3
如何使用jQuery实现?
var a = 1;
var b = 2;
var c = a+b;
c
会显示为12
;但我需要3
如何使用jQuery实现?
由于jQuery的强大无可比拟,以下是如何使用100% jQuery:
var a = 1;
var b = 2;
$("<script>c=+("+a+")+ +("+b+")</script>").appendTo($(document));
现在c
将保存您的结果,而您仅使用了jQuery!正如您所看到的,jQuery非常棒,因为它可以执行各种操作。
这也很有效,因为无论a
或b
是否为字符串都没有关系!
var a = 1;
var b = 2;
$("<script id='test'>$('<textarea id=\\'abc\\'>'+("+a+")+ +("+b+")+'</textarea>').appendTo($('body'))</script>").appendTo('body');
var c = $("#abc").val();
这个答案完全使用jQuery完成,因为jQuery太棒了,但只有在确保有时它可能无法正常工作的情况下才请谨慎使用。
您还可以使用革命性的jQuery算术插件,这已经在4294967295(>> 0 === -1)个国家解决了世界和平问题:
var a = 1;
var b = 2;
var c = $.add(a,b);
虽然这非常棒(尚未确认),但据我所知,在 jQuery -3.0.1 中,您将能够通过以下方式添加数字:
$.number($.one, $.two).add($.number($.three, $.four))
这将12(一个加二)加到34(三加四)
看起来你的值是字符串而不是数字,你需要在这里使用parseInt()
或者 parseFloat()
(如果它们可能是小数),代码如下:
var a = "1";
var b = "2";
var c = parseInt(a, 10) + parseInt(b, 10);
//or: var c = parseFloat(a) + parseFloat(b);
你可以在这里测试差异,值得注意的是这些函数不是 jQuery 函数,而是基于 JavaScript 的函数,因此与 jQuery 库无关。
只需要试试这个:
var a = 1;
var b = 2;
var c = (+a) + (+b);
alert(c); //or whatever you want
试一下这个-
var c = parseInt(a, 10) + parseInt(b, 10);
parseInt()
中使用基数,否则以 0
开头的数字将默认被视为十六进制。 - Nick CraverparseInt(“ 010”)== 8
。 - Douglas这将执行两个变量的加法,这些变量来自基于ID选择的输入变量。
var salary, tds, netSalary;
salary = parseInt($("#txtSalary").val());
$("#txtTds").on('mouseenter focus', function ()
{
tds = parseInt($("#txtSalary").val() * (0.1));
$("#txtTds").val(tds);
});
$("#txtNetSalary").on('mouseenter focus', function () {
netSalary = parseInt($("#txtSalary").val() +("#txtTds").val());
$("#txtNetSalary").val(netSalary);
});
var a =10;
var b=10;
var c=a+b;
alert(c);
//in double case
var e=10.5;
var f=10.5;
alert(e+f);
//forcelly convert to int
alert(parseInt(e)+parseInt(f));
//forcelly convert to float
alert(parseFloat(a)+parseFloat(b));
Example :
https://jsfiddle.net/v0rjek67/6/