Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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_Html - Fatal编程技术网

Javascript 根据输入值计算最大值、最小值和平均值

Javascript 根据输入值计算最大值、最小值和平均值,javascript,html,Javascript,Html,我试图创建6个文本框,前3个作为输入,后3个作为输出。三个输入文本框读取3个数字。 单击“计算”按钮时,应计算3个输入数字的最大值、最小值和平均值,并将其显示在带有相应标签的文本框中。我的代码不起作用有什么原因吗 function max()//查找最大值 { var-max; if(document.getElementsByTagName(“输入”)[0].value>document.getElementsByTagName(“输入”)[1]。value&&document.getEle

我试图创建6个文本框,前3个作为输入,后3个作为输出。三个输入文本框读取3个数字。 单击“计算”按钮时,应计算3个输入数字的最大值、最小值和平均值,并将其显示在带有相应标签的文本框中。我的代码不起作用有什么原因吗

function max()//查找最大值
{
var-max;
if(document.getElementsByTagName(“输入”)[0].value>document.getElementsByTagName(“输入”)[1]。value&&document.getElementsByTagName(“输入”)[0]。value>document.getElementsByTagName(“输入”)[2]。value){
max=document.getElementsByTagName(“输入”)[0]。值;
}else if(document.getElementsByTagName(“输入”)[1]。值>document.getElementsByTagName(“输入”)[0]。值和文档。getElementsByTagName(“输入”)[1]。值>文档。getElementsByTagName(“输入”)[2]。值){
max=document.getElementsByTagName(“输入”)[1]。值;
}否则{
max=document.getElementsByTagName(“输入”)[2]。值;
}
document.getElementsByTagName(“输出”)[0]=最大值;
//警报(maximumDemo.innerHTML);
}
函数average()//查找平均值
{
var总计=3;
var i,平均值;
aver=(document.getElementsByTagName(“输入”)[0]。value+(document.getElementsByTagName(“输入”)[1]。value+(document.getElementsByTagName(“输入”)[2]。value))/total;
document.getElementsByTagName(“输出”)[1]=aver;
}
函数最小值(){
if(document.getElementsByTagName(“输入”)[0]。值

编号1:
编号2:
编号3:
最大值:
平均值:
最小值:



计算
您有几个问题,但最大的问题是您试图将
输出
元素本身设置为数学问题的答案
,而不是将元素的设置为数学问题的答案

现在,由于您刚刚学习了所有这些,让我们在坏习惯形成之前,先改掉它们。毫无疑问,您已经从其他人使用的代码中复制了很多代码,不幸的是,web上的大多数代码都是以这种方式创建的,而不是由真正了解自己编写内容的人创建的

考虑到这一点

不要通过HTML事件属性设置事件处理程序(即
onclick
onmouseover
等)。这是一项已有25年以上历史的技术,在我们拥有现代标准和最佳实践之前我们就已经使用了,因为它易于使用,人们一直在使用它。但是并将JavaScript与HTML分开。相反,将JavaScript分开,并使用将元素连接到它们各自的回调函数

只获取一次元素引用,而不是每次运行函数时,因为扫描文档中的元素需要时间和资源。没有理由反复扫描同一个元素

与此相关小心使用,因为它返回“活动节点列表”,这意味着它必须重新扫描文档,以确保其列表保持最新。就性能而言,这可能是极其浪费的。相反,可能是扫描单个元素或元素组的最常用方法

输出
元素没有HTML
类型
属性
<代码>输入
按钮
元素允许设置
类型
纯粹是一个语义元素,就所有意图和目的而言,与
span
元素在功能上没有太大区别。这只是让浏览器知道它将包含页面设计者认为是某种输出的东西的一种方式,无论在哪里。IE的任何桌面版本也不支持它(如果这对您很重要的话)。你使用它没关系,但我认为你误解了它的用途,以及它是如何使用的

您的解决方案中确实不需要任何
if/then
代码,因为JavaScript有一个内置的对象,该对象有方法,可以完全执行您正在尝试的操作

请记住,HTML中的“T”代表“Text”
。无论您认为在表单字段中输入了什么,它都会作为文本处理,当JavaScript获得该值时,它也会将其作为文本处理。而且,在JavaScript中,
+
运算符可以表示字符串串联,也可以表示数学加法。它执行哪种操作取决于操作数是什么。如果其中一个操作数是字符串,则完成字符串串联。因此,您需要先将
输入
元素中的数据转换为数字,然后再对它们进行任何计算。这可以通过多种方式(隐式和显式)完成,但一种简单的方法是在可转换为数字的字符串前面预加一个
+
运算符,您将在下面的平均代码中看到这一点

最后(这并没有导致代码无法工作,但您应该知道),每个HTML文档都必须有一个