为什么Firebug说toFixed()不是函数?
我正在使用jQuery 1.7.2和jQuery UI 1.9.1。 我在滑块内使用下面的代码。 (http://jqueryui.com/slider/)
我有一个函数,应该testing两个值,并根据两个值之间的差异重新格式化(适当的小数位)。 如果差值大于10,我将parsing出整数。 如果差值大于5,则应保留一位小数。 其他的一切,我会保留两位小数。
当我input两个具有十个或更less的差异的值时,我使用toFixed()函数。 而且,在Firebug中,我看到一个错误:
TypeError: Low.toFixed is not a function Low = Low.toFixed(2); 有什么简单的,我做错了吗?
这是我的代码:
 var Low = $SliderValFrom.val(), High = $SliderValTo.val(); // THE NUMBER IS VALID if (isNaN(Low) == false && isNaN(High) == false) { Diff = High - Low; if (Diff > 10) { Low = parseInt(Low); High = parseInt(High); } else if (Diff > 5) { Low = Low.toFixed(1); High = High.toFixed(1); } else { Low = Low.toFixed(2); High = High.toFixed(2); } } 
	
  toFixed不是一个非数字variablestypes的方法。 换句话说, Low和High不能被固定,因为当你在Javascript中获得某个值的时候,它自动被设置为一个stringtypes。 使用parseFloat() (或基数为parseInt() ,如果它是一个整数)将允许您将不同的variablestypes转换为数字,这将使toFixed()函数起作用。 
 var Low = parseFloat($SliderValFrom.val()), High = parseFloat($SliderValTo.val()); 
 这是因为Low是一个string。 
  .toFixed()仅适用于一个数字。 
尝试做:
 Low = parseFloat(Low).toFixed(..); 
 Low = parseFloat(Low).toFixed(..); 工作:)了解它的艰辛之路.. 
  Low是一个string。 
  .toFixed()仅适用于一个数字。 
解决这个问题的一个简单的方法是:
 Low = (Low*1).toFixed(..); 
乘以1强制代码将string转换为数字,不会更改该值。 JSFiddle代码在这里 。