我正在创建一个简单的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/

10-12 06:32