Javascript 删除';px和x27;将其指定给变量时超出位置的值
在这种情况下:Javascript 删除';px和x27;将其指定给变量时超出位置的值,javascript,css,variables,Javascript,Css,Variables,在这种情况下: var a = e.clientX; var b = document.getElementById('someElement').style.left; var z = a - b; 输出为NaN。单独查看输出,我看到,a只是数字,而b是以“px”结尾的数字。设置它var a=e.clientX+'px'仍然不起作用 谢谢 谢谢你的建议,但是最好的结果是使用Number()方法得到0(从其他方法得到的结果是NaN)。有什么想法吗?style.left的值应该是字符串。虽然您
var a = e.clientX;
var b = document.getElementById('someElement').style.left;
var z = a - b;
输出为NaN。单独查看输出,我看到,a
只是数字,而b
是以“px”结尾的数字。设置它var a=e.clientX+'px'代码>仍然不起作用
谢谢
谢谢你的建议,但是最好的结果是使用Number()
方法得到0
(从其他方法得到的结果是NaN)。有什么想法吗?style.left的值应该是字符串。虽然您可以通过JavaScript的自动类型转换向字符串中添加数字,但从字符串中减去一个数字将始终导致NaN
您需要首先将字符串转换为数字。这里有两种方法可以做到这一点
var b = Number(document.getElementById('someElement').style.left);
var b = parseInt(document.getElementById('someElement').style.left);
试一试
在执行减法运算之前,这两个值都必须是Number
。函数解析字符串参数并返回指定基数(数学数字系统中的基数)的整数
var a=e.clientX;
var b=document.getElementById('someElement').style.left;
var z=a-parseInt(b);
警报(z);
减去一个数字和一个字符串会得到不好的结果,减去两个字符串也没有什么好处。尝试了一些类似于<代码> PARSETIN(b)< /COD>?应该考虑浮点数,PARSEFLASH是一个更好的选择。
var a = parseInt(e.clientX, 10);
var b = parseInt(document.getElementById('someElement').style.left, 10);
var z = (a - b) + 'px';
b = parseFloat(document.getElementById('someElement').style.left)