我对JS还是很陌生,想创建一个基本的转换器(mm,cm,dm,m,km)。我希望如果mm输入大于0,则将转换后的cm输入到cm输入中。有人知道我在做什么错吗?
function convert(){
let milliM = parseFloat(document.getElementById("mm").value);
let centiM = parseFloat(document.getElementById("cm").value);
let deciM = parseFloat(document.getElementById("dm").value);
let Meter = parseFloat(document.getElementById("m").value);
let kiloM = parseFloat(document.getElementById("km").value);
let mm = parseFloat(document.getElementById("mm"));
let cm = parseFloat(document.getElementById("cm"));
let dm = parseFloat(document.getElementById("dm"));
let m = parseFloat(document.getElementById("m"));
let km = parseFloat(document.getElementById("km"));
if (milliM>0){
centiM = milliM/10;
cm.value = centiM;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css">
<script src="main.js"></script>
<title>Converter</title>
</head>
<body>
<h1>Converter</h1>
<h2>Length</h2>
<div class="container">
<input type="text" id="mm" value="0"> mm
<input type="text" id="cm" value="0"> cm
<input type="text" id="dm" value="0"> dm
<input type="text" id="m" value="0"> m
<input type="text" id="km" value="0"> km
<br>
<button onclick="convert()">Convert</button>
</div>
</body>
</html>
我首先看到的是您应该从本节中删除parseFloat。您正在寻找元素引用,因此在这里不需要它:
let mm = parseFloat(document.getElementById("mm"));
let cm = parseFloat(document.getElementById("cm"));
let dm = parseFloat(document.getElementById("dm"));
let m = parseFloat(document.getElementById("m"));
let km = parseFloat(document.getElementById("km"));
应该是这样:
let mm = document.getElementById("mm");
let cm = document.getElementById("cm");
let dm = document.getElementById("dm");
let m = document.getElementById("m");
let km = document.getElementById("km");
2件事:
您不小心两次声明了m
。第二个应该是km
。 (与您要解决的问题无关,但值得指出)。
定义选择器时,请放开parseFloats。因此,请更改此部分:
let mm = parseFloat(document.getElementById("mm"));
let cm = parseFloat(document.getElementById("cm"));
let dm = parseFloat(document.getElementById("dm"));
let m = parseFloat(document.getElementById("m"));
let m = parseFloat(document.getElementById("km"));
为此:
let mm = document.getElementById("mm");
let cm = document.getElementById("cm");
let dm = document.getElementById("dm");
let m = document.getElementById("m");
let km = document.getElementById("km");
您不需要使用parseFloat,因为您只是将这些变量用作对选择器的引用。