2013-07-26 44 views
0

以下代码在提示中返回NaNparseInt正在为CSS属性返回NaN

var left = parseInt(document.getElementById('box').style.left, 10); 

if (key.keyCode == 37) { 
    var new_left = (left - 50) + 'px'; 
    document.getElementById('box').style.left = new_left; 
    left = new_left; 
} 

alert(new_left); 

即使我使用的left代替new_left返回NaN

我敢肯定,这与我应得的价值的事,但我还能怎么做呢?

请勿使用jQuery。谢谢

+1

什么警报(的document.getElementById( '盒子')style.left);返回? – Naddiseo

+0

这是因为这个值包含'px' - 尝试先剥离出来。 –

+0

naddiseo它什么也没有返回(空白)。标记,我认为parseInt会删除px。乔纳森,这是一个字符串。谢谢 – cantsay

回答

1

你确定该元素有一个style.left开始? parseInt函数( “”,10)NaN的

结果

试试这个:

var left = parseInt(document.getElementById('box').style.left || 0, 10); 
+0

我已经使用CSS设置左边('left:100px;') - CSS位于文档的头部,JS是在关闭body和html标签之间。谢谢 – cantsay

+1

我认为style.left属性专门用于内联CSS。例如:

+0

谢谢!这工作。任何想法如何我可以用样式表中的CSS做到这一点,以保持HTML/CSS分离? – cantsay