我正在尝试完成我的转换器,并且有一次我确实有它工作但现在一些代码将无法正常工作。像LBS的任何转换一样。我发现代码中不相关的部分会影响其他部分,因为我删除了代码的基本部分,然后逐个部分地粘贴,看看它搞砸了。例如,当我只放置将LBS转换为其他单位的代码部分时,它可以正常工作,如下面的示例中所示,但是当我将转换为克时,它不起作用。为什么我的代码的不同部分相互影响,只是在同一个点击功能?
var main = function() {
var bttn = $('.sbs');
bttn.click(function(){
var rslt = $('#result');
var num = $('#nmbr').val();
var inpt = $('#slct1').val();
var outpt = $('#slct2').val();
//Converstion from pounds
if(inpt == 'pounds'){
if(outpt == 'grams') {
var pGrams6 = num * 453.59;
rslt.text(pGrams6);
} if(outpt == 'kiloGrams') {
var pKilo6 = num * 2.2;
rslt.text(pKilo6);
} if(outpt == 'ounces') {
var pOunce6 = num * 16;
rslt.text(pOunce6);
} if(outpt == 'milliGrams') {
var pMilo6 = num * 453592;
rslt.text(pMilo6);
}
}
//Conversion from grams
if(inpt = 'grams') {
if(outpt == 'pounds') {
var pPound5 = num / 453.59;
rslt.text(pPound5);
} if(outpt == 'kiloGrams') {
var pKilo5 = num / 1000;
rslt.text(pKilo5);
} if(outpt == 'ounces') {
var pOunce5 = num * 28.35;
rslt.text(pOunce5);
} if(outpt == 'milliGrams') {
var pMilo5 = num * 1000;
rslt.text(pMilo5);
}
}
});
}
$(document).ready(main);
答案 0 :(得分:2)
这一行是问题所在:
if(inpt = 'grams') {
您需要==
,而不是=
。实际上,if
测试总是为true
,因为您指定的是非空字符串。
通常,当您测试某些内容以查看其某些值或其他值时,您可能应该使用if ... else if
而不是简单的if
语句序列。