Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除';px和x27;将其指定给变量时超出位置的值_Javascript_Css_Variables - Fatal编程技术网

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)