试图添加一个前导“$&引用;到JavaScript输出

试图添加一个前导“$&引用;到JavaScript输出,javascript,jquery,Javascript,Jquery,请检查这个 我要做的是在结果中添加一个前导“$”。保留辅助中的标签“”工作正常,但当我向其添加“$”时,它会对数字进行处理,而不是显示运行总数,它只是将数字添加到输出中 因此,添加2000+4000+5000,显示为“$200040005000保留援助”(带美元符号,但实际上不添加数字) 编辑:除此之外,只需在输入框中输入一个“2”,在输出中将其显示为$200。在进行求和之前,您将添加一个字符串“$”。所以,如果你添加一个数字,它会把它看作一个字符串。 "some string" + 1 + 2

请检查这个

我要做的是在结果中添加一个前导“$”。保留辅助中的标签“”工作正常,但当我向其添加“$”时,它会对数字进行处理,而不是显示运行总数,它只是将数字添加到输出中

因此,添加2000+4000+5000,显示为“$200040005000保留援助”(带美元符号,但实际上不添加数字)


编辑:除此之外,只需在输入框中输入一个“2”,在输出中将其显示为$200。

在进行求和之前,您将添加一个字符串
“$”
。所以,如果你添加一个数字,它会把它看作一个字符串。

"some string" + 1 + 2 = "some string12" // considers 1,2 as strings while adding to the string.
"some string" + (1+2) = "some string3" //1+2 gets executed & then gets appended to the string

var sum = input1 + input2 + input3;
$('#total').text("$" + sum +" in Retained Aid");
备选方案:

$('#total').text("$" + (input1 + input2 + input3) +" in Retained Aid");

在进行求和之前,您正在添加一个字符串
“$”
,使其成为一个字符串。所以,如果你添加一个数字,它会把它看作一个字符串。

"some string" + 1 + 2 = "some string12" // considers 1,2 as strings while adding to the string.
"some string" + (1+2) = "some string3" //1+2 gets executed & then gets appended to the string

var sum = input1 + input2 + input3;
$('#total').text("$" + sum +" in Retained Aid");
备选方案:

$('#total').text("$" + (input1 + input2 + input3) +" in Retained Aid");

Javascript使用
+
操作符连接字符串并添加数字。如果它只看到表达式中的数字,它会将它们相加,但一旦表达式中有字符串,它就会将它们全部视为字符串。这就解释了你所看到的

那么如何解决呢

简单:首先,确保值
input1
input2
input3
是数值,然后将它们添加到字符串部分的单独表达式中

您已经在代码中完成了此操作的第一部分,即执行
parseInt()
,尽管您确实需要为
NaN
(“非数字”)结果添加有效性检查,否则您将在输出中获得文本
NaN

第二部分只是将数字包装在一组括号中,以便将其视为单独的表达式:

$('#total').text("$" + (input1 + input2 + input3) +" in Retained Aid");

Javascript使用
+
操作符连接字符串并添加数字。如果它只看到表达式中的数字,它会将它们相加,但一旦表达式中有字符串,它就会将它们全部视为字符串。这就解释了你所看到的

那么如何解决呢

简单:首先,确保值
input1
input2
input3
是数值,然后将它们添加到字符串部分的单独表达式中

您已经在代码中完成了此操作的第一部分,即执行
parseInt()
,尽管您确实需要为
NaN
(“非数字”)结果添加有效性检查,否则您将在输出中获得文本
NaN

第二部分只是将数字包装在一组括号中,以便将其视为单独的表达式:

$('#total').text("$" + (input1 + input2 + input3) +" in Retained Aid");

+
也是JS中文本连接的运算符–因此,一旦您从文本值开始并向其“添加”内容,以下值也将转换为文本,因为不再进行数学加法,但从那时起,所有这些都只是字符串连接

但您可以通过使用括号将表达式的哪一部分首先执行分组来解决这个问题:

$('#total').text("$"+(input1 + input2 + input3) +" in Retained Aid");

+
也是JS中文本连接的运算符–因此,一旦您从文本值开始并向其中“添加”内容,以下值也将转换为文本,因为不再进行数学加法,但从那时起,所有这些都只是字符串连接

但您可以通过使用括号将表达式的哪一部分首先执行分组来解决这个问题:

$('#total').text("$"+(input1 + input2 + input3) +" in Retained Aid");

您的小提琴与上面发布的代码不匹配。请停止滥用
标签。它们不是用来给随机文本添加装饰的。对不起。那它们是干什么用的?我真的以为它们只是装饰…上面的小提琴已经更新了。对不起,它们是用来制作键盘键的。如果我想告诉您按ctrl+c,我会使用
标记。您的小提琴与上面发布的代码不匹配。请停止滥用
标记。它们不是用来给随机文本添加装饰的。对不起。那它们是干什么用的?我真的以为它们只是装饰…上面的小提琴已经更新了。对不起,它们是用来制作键盘键的。如果我想告诉你按ctrl+c,我会使用
标记。@meagar,这是几秒钟未格式化的代码,加上缺乏解释,我担心这会引发反对票。(现在已修复。)
$('#total')。文本(“$”+(input1+input2+input3)+”在保留辅助中)作为alternative@Ramunas-当然。让我再补充一句。。为了清晰起见,分成两行。@Krishna,是的,西方最快的枪也有它自己的问题:)@Krishna,忽略仇恨者。你的是最好的solution@meagar,这是几秒钟内未格式化的代码,加上缺乏解释,恐怕引发了反对票。(现在已修复。)
$('#total')。文本(“$”+(input1+input2+input3)+”在保留辅助中)作为alternative@Ramunas-当然。让我再补充一句。。为了清晰起见,分成两行。@Krishna,是的,西方最快的枪也有它自己的问题:)@Krishna,忽略仇恨者。您的解决方案是最好的