我在这里遇到了一个小问题。让我解释一下:
document.getElementById(" ... ").style.left
(对象的水平位置)将返回如下值:100px
或1129px
。
event.clientX
(鼠标指针的水平位置)将返回如下值:100
或1337
。
我想在这两者之间进行数学运算。例如:var x = ( document.getElementById(" ... ").style.left ) + (event.clientX )
如果一个人使用px
返回一个值而另一个没有返回值,我怎么能这样做呢?如何从中获得常规数字/ px-number?仅添加(event.clientX) + "px"
或document.getElementById(" ... ").style.left - "px"
祝你好运!如果某些事情不清楚我会发表评论!
答案 0 :(得分:2)
对字符串进行添加将使Javascript尝试连接它们而不是进行实际的数学运算。对包含数字以外的字符的字符串进行减法将导致Javascript在尝试将它们转换为数字时失败,并且会为您提供NaN
。
您需要使用document.getElementById(" ... ").style.left
将parseInt
提供给您的字符串转换为整数。 parseInt
会方便地忽略非数字字符,例如“px'”中的字符。
因此,如果w = document.getElementById(" ... ").style.left
您可以通过parseInt(w)
获得以像素为单位的数字。您可以使用parseInt
返回的值进行数学运算,因为它将是一个整数。