我正在创建一个简单的px到em转换器。我已经工作了,但是在将结果限制在小数点后三位时遇到了麻烦。我正在尝试使用toFixed(3)方法,但是每当我包含它时,该变量就会停止添加到html中。
小提琴http://jsfiddle.net/nowlesy/usr5c0ac/
继承人的HTML
PX到EM转换器
<div id="base">
<h2>Enter a base pixel size</h2>
<input id="baseSize" value="126" maxlength="4"><p>px</p>
</div>
<div id="px">
<input id="pxInput" value="16" maxlength="4"><p>px</p>
<div id="emOutput2"></div>
</div><p>em</p>
<div id="Em">
<input id="emInput" value="1" maxlength="4"><p>em</p>
<div id="pxOutput2">
</div><p>px</p></div>
和js
$(document).ready(function(){
$("#pxInput").keyup(function(){
var emOutput = function (){ return $('#pxInput').val()/$('#baseSize').val();};
$('#emOutput2').html(emOutput);
});
$("#emInput").keyup(function(){
var pxOutput = function (){ return $('#emInput').val()/$('#baseSize').val();};
$('#pxOutput2').html(pxOutput);
});
$("#baseSize").keyup(function(){
var pxOutput = function (){ return $('#emInput').val()/$('#baseSize').val();};
$('#pxOutput2').html(pxOutput);
var emOutput = function (){ return $('#pxInput').val()/$('#baseSize').val();};
$('#emOutput2').html(emOutput);
});
var baseSize2= $('#baseSize').val();
var pxInput = $('#pxInput').val();
var emInput =$('#emInput').val();
var emOutput = function (){ return pxInput/baseSize2;};
var pxOutput = function (){return emInput*baseSize2;};
('#baseSize').attr('value', baseSize2);
$('#pxInput').attr('value', pxInput);
$('#emInput').attr('value', emInput);
$('#pxOutput2').html(pxOutput);
$('#emOutput2').html(emOutput);
});
谢谢你的帮助
最佳答案
在您的代码中,您具有pxOutput
作为返回值的函数。 jQuery可以处理此问题,但是在函数上调用.toFixed()
无效。就我个人而言,我将用以下类似的方法代替整个方法(demo):
var pxOutput = (parseInt($('#emInput').val(), 10)/parseInt($('#baseSize').val(), 10)).toFixed(3);
您也可以将其概括为如下功能:
function convert(input) {
return (parseInt(input.val(), 10) / parseInt($('#baseSize').val(), 10)).toFixed(3);
};
关于javascript - 无法将toFixed(3)添加到变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28864811/