Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用";。“价值”;Javascript中文本框的属性_Javascript_Dom - Fatal编程技术网

使用";。“价值”;Javascript中文本框的属性

使用";。“价值”;Javascript中文本框的属性,javascript,dom,Javascript,Dom,通过上面的代码,我无法得到两个数字相加的结果。如果要将它们相加,首先必须将它们转换为整数.value始终包含字符串 document.getElementById("t3").value = document.getElementById("t1").value + document.getElementById("t2"); 试试这个: parseInt(document.getElementById("t1").

通过上面的代码,我无法得到两个数字相加的结果。

如果要将它们相加,首先必须将它们转换为整数
.value
始终包含字符串

document.getElementById("t3").value = document.getElementById("t1").value + 
                                      document.getElementById("t2");
试试这个:

parseInt(document.getElementById("t1").value, 10) + parseInt(document.getElementById("t2").value, 10);

实际上,您并不是在将两个数字相加。您正试图将
document.getElementById(“t1”).value
(包含数字的字符串)添加到DOM元素
document.getElementById(“t2”)

您可能会得到如下结果:

document.getElementById("t3").value = parseInt(document.getElementById("t1").value,10) + 
                                  parseInt(document.getElementById("t2").value,10);
您需要(a)获取第二个元素的
属性,并(b)将它们作为数字而不是字符串相加

43[object HTMLInputElement]

(+document.getElementById(“t1”).value)
将值转换为数字。这是。

这很厚颜无耻,但OP试图更新的
t3
元素很可能是
div
span
而不是
输入(
:)


需要更多信息;#t3是什么类型的元素?表单控件值是字符串,因此
+
将值连接为字符串,而不是执行数字加法。您能给我们完整的html和javascript片段吗?你绑定到什么事件才能触发此事件?数字是整数还是你可能需要接受小数?这与OP有什么不同?@RobG OP未能获取值
文档。getElementById(“t2”)。值
是,但它仍将进行串联,而不是加法。正如我在Florian的帖子中提到的,如果必须使用
parseInt
,则,你真的应该使用基数参数。如果你必须使用
parseInt
,你也需要使用基数参数。@lonesomeday很好,尽管我相信它在ECMAScript中默认为以10为基数5@Moob当字符串为
012
?兼容ECMAScript 5的浏览器将使用base 10,但其他浏览器可能不会。那么
0x12
呢?您希望浏览器如何处理此问题?(所有这些问题都是通过使用一元加运算符来解决的…)这个解决方案是精确的,但lonesomeday的解决方案非常优雅。两个答案都投了赞成票,原因各不相同。然而,当在一个经验丰富的团队中工作时,我相信这是一个更好的解决方案,因为每个人都能够立即阅读和理解。@lonesomeday我完全同意。一元加号运算符是一种方法。我只是向那些使用parseInt的人指出,在ECMAScript 5中,它默认以10为基数。
document.getElementById("t3").value = (+document.getElementById("t1").value) + 
                                      (+document.getElementById("t2").value);
var t1, t2, t3;

t1 = document.getElementById("t1");
t2 = document.getElementById("t2");
t3 = document.getElementById("t3");

t3.innerHTML = parseInt(t1.value, 10) + parseInt(t2.value, 10);
t3.innerHTML = +t1.value + +t2.value;