【发布时间】:2019-02-12 02:10:59
【问题描述】:
我有一个 JS 函数,它创建一个摄氏到华氏转换表(反之亦然)。
它需要一个开始温度、结束温度和转换类型(摄氏度到华氏度,或华氏度到摄氏度)。 然后它会用从头到尾的转换填充一个表格。
该函数正常工作,直到最终值为 100 或更大。但是,如果起始值是负数,它将适用于 100 或更大的结束值。
这是我的代码:
function getFormData() {
var start = document.getElementById("start").value;
var finish = document.getElementById("finish").value;
var conv = document.getElementById("conv").value;
conversionTable("conversion", conv, start, finish);
return false;
}
function conversionTable(tagID, convType, from, to) {
var conv = document.getElementById(tagID);
var table = document.createElement("TABLE");
var head = table.createTHead();
var trh = head.insertRow(0);
if (convType == 'c2f') {
var headCel = trh.insertCell();
headCel.innerHTML = "<b>Celsius</b>";
var headCel = trh.insertCell();
headCel.innerHTML = "<b>Fahrenheit</b>";
}
if (convType == 'f2c') {
var headCel = trh.insertCell();
headCel.innerHTML = "<b>Fahrenheit</b>";
var headCel = trh.insertCell();
headCel.innerHTML = "<b>Celsius</b>";
}
conv.innerHTML = "";
conv.append(table);
for (var i = from; i <= to; i++) {
var tr = table.insertRow();
if (i % 2 == 0) {
tr.setAttribute("class", "even");
} else {
tr.setAttribute("class", "odd");
}
var td = tr.insertCell();
td.appendChild(document.createTextNode(i));
var td = tr.insertCell();
if (convType == 'c2f') {
td.appendChild(document.createTextNode(c2f(i)));
}
if (convType == 'f2c') {
td.appendChild(document.createTextNode(f2c(i)));
}
}
return false;
}
function c2f(c) {
let result = c * 9 / 5 + 32;
result = (result.toFixed(1));
return result.toString()
}
function f2c(f) {
let result = ((f - 32) * (5 / 9));
result = result.toFixed(1);
return result.toString()
}
<form>
<label>Start:</label><input type="number" id="start"><br>
<label>Finish:</label><input type="number" id="finish"><br>
<select id="conv">
<option value="c2f">Celsius to Fahrenheit</option>
<option value="f2c">Fahrenheit to Celsius</option>
</select>
<input type="submit" onclick="getFormData();return false;">
</form>
<div id="conversion"></div>
我该如何解决这个问题?
为了进行测试,我使用值 32,100 并将类型从华氏温度转换为摄氏温度。
【问题讨论】:
-
您绝对应该使用
parseInt函数将输入值变成一个int。
标签: javascript html