0

我有两个< 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>

但输出是

有人可以帮助提供正确的代码吗?谢谢

4

1 回答 1

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 ?

小提琴

您可以通过以下方式解决它:

<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>

小提琴

于 2013-07-14T17:19:52.733 回答