使用jquery添加两个变量

X10*_*0nD 28 javascript jquery

var a = 1;
var b = 2;
var c = a+b;
Run Code Online (Sandbox Code Playgroud)

c将显示为12; 但是我需要3

我如何使用jQuery做到这一点?

Dow*_*oat 70

绝对使用jQuery

因为jQuery的强大功能显然是无与伦比的,所以这里是如何使用100%的jQuery:

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

现在c将保留你的结果,你只使用jQuery!正如你所看到的,jQuery非常棒,因为它可以做各种各样的事情

这也非常实用,因为它如果没有关系a或者b是字符串!


没有足够的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();
Run Code Online (Sandbox Code Playgroud)

这个答案是用100%jQuery完成的,因为jQuery非常棒,但只是小心使用它,因为它有时可能无法正常工作.


jQuery算术插件

您还可以使用革命性的jQuery算术插件,它已经解决了超过4294967295(>> 0 === -1)国家的世界和平:

var a = 1;
var b = 2;
var c = $.add(a,b);
Run Code Online (Sandbox Code Playgroud)

虽然这很好(这还没有确认),但在jQuery -3.0.1中,我听说你可以这样添加数字:

$.number($.one, $.two).add($.number($.three, $.four))
Run Code Online (Sandbox Code Playgroud)

这增加了12(一+两)到34(三+四)

  • 不完全jQuery仍然有一些javascript -1 (23认同)

Nic*_*ver 37

看起来你有字符串而不是数字,你需要parseInt()或者parseFloat()(如果它们可能是小数)在这里,像这样:

var a = "1";
var b = "2";
var c = parseInt(a, 10) + parseInt(b, 10);
//or: var c = parseFloat(a) + parseFloat(b);
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试差异,值得注意的是这些不是jQuery而是基础JavaScript函数,因此这不依赖于jQuery库.

  • jQuery不够. (6认同)
  • 我不得不downvote这个,因为你永远不应该使用parseInt将字符串转换为数字.而是使用Number(). (4认同)
  • 也许,只是可能,因为在http://stackoverflow.com/questions/4090518/what-is-the-difference-between-parseint-and-number中讨论的含义 (2认同)

Sac*_*hag 9

试试这个 -

var c = parseInt(a, 10) + parseInt(b, 10);
Run Code Online (Sandbox Code Playgroud)

  • 你应该总是在`parseInt()`上使用基数,否则默认情况下,以`0`开头的数字将被视为基数16. (7认同)
  • 注意这个,它将使用"0"作为八进制的魔术前缀,所以:`parseInt("010")== 8`. (2认同)

小智 8

试试这个:

var a = 1;
var b = 2;
var c = (+a) + (+b);
alert(c); //or whatever you want
Run Code Online (Sandbox Code Playgroud)