我有两个< 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
有人可以帮助使用正确的代码吗?感谢
答案 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?
您可以通过以下方式解决问题:
<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>