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

时间:2013-07-14 17:16:55

标签: javascript html

我有两个< div> 部分内有数字。当第一个<单击div> ,第二个内容应显示第一个<的值的两倍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

有人可以帮助使用正确的代码吗?感谢

1 个答案:

答案 0 :(得分:2)

元素#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