javascript - 如何使我的转换器按降序排列

标签 javascript jquery html

我创建了一个转换表,根据用户选择的值将英里转换为公里,将公里转换为英里。他们输入两个数字来表示两个范围,因此如果他们输入 25 并选择 kmm然后将显示转换为英里的 2km5km。但是,我想做的是,如果用户输入一个更大的数字来开始,例如如果您输入 102 它仍然应该执行相同的操作,而是它应该从 10km 下降到 2km 所以按降序排列,所以我知道这将是沿着 if(rangeStart>rangeEnd){i-- ;}

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>

<script>
function conversion(n) {
if (document.getElementById('mtokm').checked) {
    return (n/0.62137).toFixed(2);
}
else {
return (n*0.62137).toFixed(2);
}
    }

function conversionTable(rangeStart, rangeEnd) {
if(atLeastOneRadio() && rangeStart != false && rangeEnd != false) {

divStr="<table border=1><tr><td>Miles</td><td>Kilometres</td></tr>";}


    for(i=rangeStart;i<=rangeEnd;i++) {
    if(i%2==0)
    {
        divStr+= "<tr bgcolor=\"yellow\"><td>" + i + "</td><td>" + conversion(i) + "</td></tr>";
    }
    else
    {
        divStr+= "<tr bgcolor=\"green\"><td>" + i + "</td><td>" + conversion(i) + "</td></tr>";
    }
  }
    document.getElementById("divResult").innerHTML=divStr;
 }
  else
  {
alert("Please make sure you have entered an integer in both text boxes");
  }
}

function getnputValue(input) {
var nn = $("input[name=convert]:checked").val()
var myInt = document.getElementById(input).value;
if(myInt == parseInt(myInt))
return parseInt(myInt);
else
    return false;

}




function check() {
    var radios = document.getElementsByName("choice");
    $("input[name=convert]:checked").val()
    for (var i = 0, len = radios.length; i < len; i++) {
    if (radios[i].checked) {
        return true;
}
}

return false;
}

function atLeastOneRadio() {
    return ($('input[type=radio]:checked').length > 0);

}
</script>
</head>
<body>
<p>
    Start : <input type=textbox id=rangeTxt value=""/>
    End : <input type=textbox id=rangeTxt2 value=""/>
    <input type=radio name="convert" id="mtokm" value ="Miles to Kilometre"/>        Miles to Kilometre
    <input type=radio name="convert" id="kmtom" value ="Kilometre to Miles"/>  Kilometre to Miles
    <br>
    <br>
    <button onClick="conversionTable(getnputValue('rangeTxt'),        getnputValue('rangeTxt2'))">Convert</button>
    </p>
    <div id="divResult">
    </div>
    </body>
    </html>

最佳答案

检查终点是否高于或低于起点。然后设置用于控制 for 循环的变量。

var increment, compare;
if (rangeStart <= rangeEnd) {
    increment = 1;
    compare = function(x, y) {
        return x <= y;
    };
} else {
    increment = -1;
    compare = function(x, y) {
        return x >= y;
    };
}

for (i = rangeStart; compare(i, rangeEnd); i += increment) {
    // display code
}

关于javascript - 如何使我的转换器按降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35190002/

相关文章:

javascript - 如何设计有很多ajax调用的页面?

javascript - 使用 jquery 和 json 显示数组中的所有项目

javascript - 如何将位置对齐到 3 个部分,上 - 中和下?

javascript - 在浏览器控制台中为加载页面的特定 iframe 运行跨站点 javascript

javascript - PHP 的 sprintf 函数的 JavaScript 等价物是什么?

javascript - 选择没有 ID 或类(class)名称的子项

javascript - 如何在jsviews中将css设置为自定义标签(datepicker)?

javascript - 如何在 div 中加载 AngularJS

html - 在方形空间中更改子导航事件链接样式

HTML 到 Excel 格式 : mso-number-format currency without decimal?