我如何构建一个可以在JavaScript中转换长度的转换器?

问题描述 投票:0回答:2

我对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>
javascript html converters
2个回答
0
投票

我首先看到的是您应该从本节中删除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");

0
投票

2件事:

  1. 您不小心两次声明了m。第二个应该是km。 (与您要解决的问题无关,但值得指出)。

  2. 定义选择器时,请放开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,因为您只是将这些变量用作对选择器的引用。

© www.soinside.com 2019 - 2024. All rights reserved.