使用jQuery添加两个变量

34
var a = 1;
var b = 2;
var c = a+b;

c会显示为12;但我需要3

如何使用jQuery实现?


3
不确定是否认真:/ - Gogol
6个回答

84

一定要使用jQuery

由于jQuery的强大无可比拟,以下是如何使用100% jQuery:

var a = 1;
var b = 2;
$("<script>c=+("+a+")+ +("+b+")</script>").appendTo($(document));

现在c将保存您的结果,而您仅使用了jQuery!正如您所看到的,jQuery非常棒,因为它可以执行各种操作。

这也很有效,因为无论ab是否为字符串都没有关系!


还不够jQuery?

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算术插件

您还可以使用革命性的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(三加四)


1
这太棒了,也太有趣了。 - ARI FISHER

38

看起来你的值是字符串而不是数字,你需要在这里使用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 库无关。


4
我必须将这个点踩下去,因为你永远不应该使用parseInt将字符串转换为数字。相反,应该使用Number()。 - Ashnur
2
也许,仅仅也许,是因为类似于https://dev59.com/Qm855IYBdhLWcg3w5IrZ所讨论的含义的原因。 - Armen Michaeli
8
jQuery不足。 - Roy Tinker

11

只需要试试这个:

var a = 1;
var b = 2;
var c = (+a) + (+b);
alert(c); //or whatever you want

10

试一下这个-

var c = parseInt(a, 10) + parseInt(b, 10);

9
你应该始终在 parseInt() 中使用基数,否则以 0 开头的数字将默认被视为十六进制。 - Nick Craver
2
小心这个,它会使用“0”作为八进制的魔法前缀,所以:parseInt(“ 010”)== 8 - Douglas

2

这将执行两个变量的加法,这些变量来自基于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);
});

1
    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/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接