Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使用JavaScript寻找有关英制/公制切换/转换器的帮助_Javascript - Fatal编程技术网

正在使用JavaScript寻找有关英制/公制切换/转换器的帮助

正在使用JavaScript寻找有关英制/公制切换/转换器的帮助,javascript,Javascript,这里是JavaScript/编程新手!下面是我试图实现的目标的分解: 1-单击可在英制和公制之间切换的按钮 2-当按下上述按钮时,带有在in和mm之间切换的插件/附件的表单输入 3-让表单输入只接受数字,然后限制数字的范围 4-用户输入的自动转换。例如,如果读取50英寸,用户将标准更改为公制,它将自动计算为1270毫米,反之亦然 5-如果用户手动输入测量单位,它会自动转换为相应的标准。例如,如果它设置为英制,用户输入“5英尺”,它将调整为60英寸。此外,如果将其设置为公制,并且用户输入“5英尺”

这里是JavaScript/编程新手!下面是我试图实现的目标的分解:

1-单击可在英制和公制之间切换的按钮

2-当按下上述按钮时,带有在in和mm之间切换的插件/附件的表单输入

3-让表单输入只接受数字,然后限制数字的范围

4-用户输入的自动转换。例如,如果读取50英寸,用户将标准更改为公制,它将自动计算为1270毫米,反之亦然

5-如果用户手动输入测量单位,它会自动转换为相应的标准。例如,如果它设置为英制,用户输入“5英尺”,它将调整为60英寸。此外,如果将其设置为公制,并且用户输入“5英尺”,则会将其调整为1524毫米

function unitToggle() {
  var toggle = document.getElementById("toggle");
  var units = document.getElementsByClassName("units");
  if (toggle.innerHTML === "Imperial") {
    toggle.innerHTML = "Metric";
  } else {
    toggle.innerHTML = "Imperial";
  }
  if (units[0].innerHTML === "in") {
    units[0].innerHTML = "mm";
  } else {
    units[0].innerHTML = "in";
  }
}
我已经能够计算出1,以及2中的大部分。到目前为止,当按钮被切换时,我只能得到一个从in切换到mm的输入。到目前为止,这是我的JSFIDLE

我非常感谢您提供的任何帮助,即使这只是为我指明了正确的方向!谢谢

你好 我是一个初学者,我将尝试帮助您,但我有一个问题,您真的需要所有这些代码,还是希望代码更短? 对我的问题最有帮助的答案是解释性的,他们试图尽可能少地修改我的代码,这样我就可以更容易地得到我缺少的东西,我也会尝试同样的方法 以下是我理解的您想要的工作片段:

函数unitToggle(){
var toggle=document.getElementById(“toggle”);
var units=document.getElementsByClassName(“单位”);
如果(toggle.innerHTML==“英制”){
toggle.innerHTML=“公制”;
document.getElementsByClassName(“表单控件”)[0]。值*=25.4;
}否则{
toggle.innerHTML=“英制”;
document.getElementsByClassName(“表单控件”)[0].value/=25.4;
}
if(单位[0]。innerHTML==“in”){
单位[0]。innerHTML=“mm”;
}否则{
单位[0]。innerHTML=“in”;
}
}

帝国的
在里面
在里面

您只更改了一个单位标签,但必须更改整个
单位
阵列的标签。实际上,您正在收集
单元中的所有
.units
元素,然后只为
单元[0]
分配新标签。