在这样的代码中:
var a = e.clientX;
var b = document.getElementById('someElement').style.left;
var z = a - b;
输出为NaN。分别查看输出,我看到a
只是数字而b
是以'px'结尾的数字。设置它var a = e.clientX + 'px';
仍然无效。
由于
我感谢您的建议,但最好的结果是使用0
方法Number()
(从其他方法得到的结果是NaN)。 。 。任何想法?
答案 0 :(得分:1)
style.left
的值应为字符串。虽然您可以通过JavaScript自动类型转换向字符串添加数字,但从字符串中减去数字将始终生成NaN
。
您需要先将字符串转换为数字。这有两种方法可以做到。
var b = Number(document.getElementById('someElement').style.left);
var b = parseInt(document.getElementById('someElement').style.left);
答案 1 :(得分:1)
var a = parseInt(e.clientX, 10);
var b = parseInt(document.getElementById('someElement').style.left, 10);
var z = (a - b) + 'px';
答案 2 :(得分:1)
尝试
curl -X POST -d "customer[name]=Wes&customer[friends][]="
答案 3 :(得分:0)
在进行减法运算之前,两个值都需要为
Number
。parseInt()
函数解析字符串参数并返回指定基数的整数(数学系统中的基数)。
var a = e.clientX;
var b = document.getElementById('someElement').style.left;
var z = a - parseInt(b);
alert(z);