Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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将NaN字符串属性转换为可用数字_Javascript_Parsing_Svg_Types_Nan - Fatal编程技术网

Javascript将NaN字符串属性转换为可用数字

Javascript将NaN字符串属性转换为可用数字,javascript,parsing,svg,types,nan,Javascript,Parsing,Svg,Types,Nan,问题是 在我的项目中的某个地方,我有一个svg容器,我必须在上面应用转换。 转换只是一个“文本属性”,因此,我计算一个值,然后将其设置为svg属性 我得到的值是“比例”值。它从0.1变为1+(0.x),最大值为2。例如,以下是我得到的值: var scaleValue = "1.3000"; 我这样将其作为“转换”属性: myItem.setAttributeNS(null,"transform","scale("+scaleValue+")"); var transformString =

问题是

在我的项目中的某个地方,我有一个svg容器,我必须在上面应用转换。 转换只是一个“文本属性”,因此,我计算一个值,然后将其设置为svg属性

我得到的值是“比例”值。它从0.1变为1+(0.x),最大值为2。例如,以下是我得到的值:

var scaleValue = "1.3000";
我这样将其作为“转换”属性:

myItem.setAttributeNS(null,"transform","scale("+scaleValue+")");
var transformString = myItem.getAttribute("transform");
var scale = transformString.substr((transformString.indexOf('(',transformString.indexOf(('scale('),0))+1),(transformString.indexOf((')',transformString.indexOf('scale(')))-1));
console.log(scale);
现在,svg项有一个名为“transform”的属性,其中包含一个带有值的比例

稍后在我的代码中,我需要得到这个值!现在麻烦来了。。。 我通过以下方式获取值:

myItem.setAttributeNS(null,"transform","scale("+scaleValue+")");
var transformString = myItem.getAttribute("transform");
var scale = transformString.substr((transformString.indexOf('(',transformString.indexOf(('scale('),0))+1),(transformString.indexOf((')',transformString.indexOf('scale(')))-1));
console.log(scale);
日志(比例)给我1.3000。。。所以,我得到的值是好的,但我得到的是一个字符串(我正在解析一个字符串…)

然后我需要用这个值做一些事情,比如,在mouseEvent上:

var currentPositionX = (event.offsetX==undefined?event.layerX:event.offsetX)*scale;
所以,在这一点上,我需要标度是一个“浮点数”或者我可以用来计算值的东西。。。每次我尝试这样做,我都会得到这样的信息:

Unexpected NaN value ...
更新:

问题似乎来自我必须做的计算。 因此,第一个是获取鼠标偏移:

var offsetX = event.offsetX==undefined?event.layerX:event.offsetX;
这给了我一个类似“2048”的值,我在控制台中输出它,例如:

console.log(parseFloat(offsetX));
我得到了正确的显示值。 稍后我尝试以下方法:

var calculated = (parseFloat(offsetX))*(parseFloat(scale));
在这里,当我像这样输出结果时:

console.log(calculated);
我得到“南”

谢谢您的帮助:)

您可以在将其作为字符串获取后始终将其保存:

scale = parseFloat(scale);
在将其作为字符串获取后,您始终可以:

scale = parseFloat(scale);
在将其作为字符串获取后,您始终可以:

scale = parseFloat(scale);
在将其作为字符串获取后,您始终可以:

scale = parseFloat(scale);

我做到了。。。当我使用console.log(parseFloat(scale))时,我在console中得到了1.3,但问题似乎来自于我对偏移量值的计算……那么问题是什么呢?你说Console.log(scale)给我1.3000。。。所以,我得到的值是好的,但我得到的是一个字符串(我正在解析一个字符串…。console.log(typeof(offsetX))给我“number”,console.log(typeof(scale))给我“object”。。。这里有个问题…好的,最后一件事,
scale
对象的值是什么?scale的值是字符串“1.x”(1.3,或其他…),parseFloat(scale)是一个“数字”。。。(offsetXValue)也是一个数字…:/但在同一计算中使用这两个变量会得到“NaN”回报…我做到了。。。当我使用console.log(parseFloat(scale))时,我在console中得到了1.3,但问题似乎来自于我对偏移量值的计算……那么问题是什么呢?你说Console.log(scale)给我1.3000。。。所以,我得到的值是好的,但我得到的是一个字符串(我正在解析一个字符串…。console.log(typeof(offsetX))给我“number”,console.log(typeof(scale))给我“object”。。。这里有个问题…好的,最后一件事,
scale
对象的值是什么?scale的值是字符串“1.x”(1.3,或其他…),parseFloat(scale)是一个“数字”。。。(offsetXValue)也是一个数字…:/但在同一计算中使用这两个变量会得到“NaN”回报…我做到了。。。当我使用console.log(parseFloat(scale))时,我在console中得到了1.3,但问题似乎来自于我对偏移量值的计算……那么问题是什么呢?你说Console.log(scale)给我1.3000。。。所以,我得到的值是好的,但我得到的是一个字符串(我正在解析一个字符串…。console.log(typeof(offsetX))给我“number”,console.log(typeof(scale))给我“object”。。。这里有个问题…好的,最后一件事,
scale
对象的值是什么?scale的值是字符串“1.x”(1.3,或其他…),parseFloat(scale)是一个“数字”。。。(offsetXValue)也是一个数字…:/但在同一计算中使用这两个变量会得到“NaN”回报…我做到了。。。当我使用console.log(parseFloat(scale))时,我在console中得到了1.3,但问题似乎来自于我对偏移量值的计算……那么问题是什么呢?你说Console.log(scale)给我1.3000。。。所以,我得到的值是好的,但我得到的是一个字符串(我正在解析一个字符串…。console.log(typeof(offsetX))给我“number”,console.log(typeof(scale))给我“object”。。。这里有个问题…好的,最后一件事,
scale
对象的值是什么?scale的值是字符串“1.x”(1.3,或其他…),parseFloat(scale)是一个“数字”。。。(offsetXValue)也是一个数字…:/但在同一计算中使用这两个变量会得到“NaN”回报。。。