我有两个 < 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
有人可以帮忙提供正确的代码吗?谢谢
最佳答案
元素#left
包含整个 anchor ,因此您将获取 anchor 的所有 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>
关于Javascript不使用parseInt函数添加两个字符串数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641709/