Javascript没有使用parseInt函数添加两个字符串数字

Javascript not adding two string numbers using parseInt function

本文关键字:两个 数字 字符串 添加 函数 parseInt Javascript      更新时间:2023-09-26

我有两个<div>包含数字的部分。当数字出现在1st<单击div>,第二个内容应显示1st值的两倍<div>

我使用了以下代码,但没有工作。

<div id="left"><a href="#" onclick="document.getElementById('right').innerHTML = (parseInt(document.getElementById('left').innerHTML) + parseInt(document.getElementById('left').innerHTML))">1</a></div>
<div id="right">1</div>

但输出是

NaN

有人能帮我输入正确的代码吗?感谢

元素#left包含整个锚点,因此您将取回锚点的所有HTML,而不仅仅是数字,这就是为什么parseInt会吐出NaN的原因。

换句话说:

document.getElementById('left').innerHTML

将返回:

<a href="#" onclick="document.getElementById('right').innerHTML = (parseInt(document.getElementById('left').innerHTML) + parseInt(document.getElementById('left').innerHTML))">1</a>

当将其解析为整数时,它会返回NaN?

FIDDLE

你可以通过以下操作来解决:

<div id="left"><a href="#" onclick="calc(this); return false;">1</a></div>
<div id="right">1</div>
<script type="text/javascript">
    function calc(elem) {
        var val = parseInt(elem.innerHTML,10) * 2;
        document.getElementById('right').innerHTML = val;
    }
</script>

FIDDLE