Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 JS函数只工作一次_Javascript_Html - Fatal编程技术网

Javascript JS函数只工作一次

Javascript JS函数只工作一次,javascript,html,Javascript,Html,我正在创建一个页面,允许将温度从摄氏度转换为华氏度,反之亦然。 用户输入开始温度、结束温度以及转换方式 该页面当前可以工作,但只能工作一次?(我的意思是,第一次将转换结果正确打印在表中。如果用户重新输入数据并提交表单,它只显示表的标题,而不显示结果。) 这是我第一次使用JS,所以这可能是非常明显的 非常感谢您的帮助 顺便说一句,我很想得到礼仪方面的建议,但请记住,我是一个JS noob,所以要友善!) 试验 函数myFunc(){ 开始=document.getElementById(“开始”

我正在创建一个页面,允许将温度从摄氏度转换为华氏度,反之亦然。 用户输入开始温度、结束温度以及转换方式

该页面当前可以工作,但只能工作一次?(我的意思是,第一次将转换结果正确打印在表中。如果用户重新输入数据并提交表单,它只显示表的标题,而不显示结果。)

这是我第一次使用JS,所以这可能是非常明显的

非常感谢您的帮助

顺便说一句,我很想得到礼仪方面的建议,但请记住,我是一个JS noob,所以要友善!)


试验
函数myFunc(){
开始=document.getElementById(“开始”).value;
finish=document.getElementById(“finish”).value;
conv=document.getElementById(“conv”).value;
可转换表(“转换”、转换、开始、完成);
返回false;
}
函数可转换(tagID、convType、from、to){
conv=document.getElementById(tagID);
table=document.createElement(“表”);
head=table.createTHead();
trh=头部插入行(0);
如果(convType=='c2f'){
headCel=trh.insertCell();
headCel.innerHTML=“摄氏度”;
headCel=trh.insertCell();
headCel.innerHTML=“华氏度”;
}
否则{
headCel=trh.insertCell();
headCel.innerHTML=“华氏度”;
headCel=trh.insertCell();
headCel.innerHTML=“摄氏度”;
}
conv.replaceWith(表格);

对于(var i=from;i您正在用表替换conv。在第二次运行时,程序无法找到
conv
,这就是您出错的原因。请改用下面的代码

conv.innerHTML="";
            conv.append(table);
函数myFunc(){
开始=document.getElementById(“开始”).value;
finish=document.getElementById(“finish”).value;
conv=document.getElementById(“conv”).value;
可转换表(“转换”、转换、开始、完成);
}
函数可转换(tagID、convType、from、to){
conv=document.getElementById(tagID);
table=document.createElement(“表”);
head=table.createTHead();
trh=头部插入行(0);
如果(convType=='c2f'){
headCel=trh.insertCell();
headCel.innerHTML=“摄氏度”;
headCel=trh.insertCell();
headCel.innerHTML=“华氏度”;
}
否则{
headCel=trh.insertCell();
headCel.innerHTML=“华氏度”;
headCel=trh.insertCell();
headCel.innerHTML=“摄氏度”;
}
conv.innerHTML=“”;
conv.append(表);

对于(var i=from;i)有太多全局变量。请使用
var、let或const
,因为您替换了引用的元素,而替换的元素没有id。您还可以使用按钮(of type=“button”)而不是提交按钮,以避免对提交的表单产生顾虑(由于页面已提交,代码只执行一次)。礼仪:尝试用描述性的方式命名函数,以便于将来阅读和重构。
myFunc
对于函数来说不是一个很有用的名称。请继续努力;)谢谢!这就解决了问题。唯一的问题是,我现在遇到了另一个问题:/99以上的数字转换不起作用?嗯,当我尝试将32华氏度转换为100华氏度转换为摄氏度时,表中只显示了标题
conv.innerHTML="";
            conv.append(table);