Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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中的html列求和,然后在警报框中显示_Javascript_Html - Fatal编程技术网

对JavaScript中的html列求和,然后在警报框中显示

对JavaScript中的html列求和,然后在警报框中显示,javascript,html,Javascript,Html,首先:我是一个网络开发的noob。 我的问题是:我已经用HTML制作了一个页面,其中有一个带有输入字段的表格,在用户写下一些数字后,他们应该能够单击按钮,在警报框中看到一列的总和,旁边有一些文本。目前,警报框显示的是文本,但不是总和,而是“未定义”。下面是JS代码。告诉我是否也应该发布HTML部分 沃特冈 沃特冈 Vakcode ECTS 基准行为 贝雷肯研究中心 Naam:Gergo Tamas Telefoon:0631947009 电子邮件:gergo。tamas@student.h

首先:我是一个网络开发的noob。 我的问题是:我已经用HTML制作了一个页面,其中有一个带有输入字段的表格,在用户写下一些数字后,他们应该能够单击按钮,在警报框中看到一列的总和,旁边有一些文本。目前,警报框显示的是文本,但不是总和,而是“未定义”。下面是JS代码。告诉我是否也应该发布HTML部分


沃特冈
沃特冈
Vakcode
ECTS
基准行为

贝雷肯研究中心 Naam:Gergo Tamas

Telefoon:0631947009

电子邮件:gergo。tamas@student.hu.nl



戈塔马斯
Deze opdracht是het kader van het vak分析和用户界面中的gemaakt


编剧:Gergo Tamas

基准日期:13-02-2019

函数计算(){ var table=document.getElementById('table'); var items=table.getElementsByTagName('input'); var总和=0;
对于(var i=0;i将
返回和;
添加到
计算()
,并将
total=Calculate.output;
更改为
total=Calculate();

现在它显示为未定义,因为您无法访问Calculate函数中的输出变量

按提供的完整代码进行编辑

现在我看到了几个问题:

1) 您正在执行
var table=document.getElementById('table');
,它选择具有
id=table
的元素,但是在html中将其设置为
class=“table”
。若要解决此问题,请将html从类更改为id,或者使用
let table=document.getElementsByClassName('table')[0]
以检索元素

2) 您试图将
sum
存储在
id=sum
的元素中,但html中不存在此类元素


3) 计算总和时,您在每个字段(varkode、ects和date)上循环,这些字段并非都是数字字段。计算函数不返回总和。您试图读取错误的输出。请尝试以下操作:

<script type="text/javascript">

  function Calculate() {
      var table = document.getElementById('table');
      var items = table.getElementsByTagName('input');
      var sum = 0;
      for(var i=0; i<items.length; i++)
          sum += parseInt(items[i].value);
      var output = document.getElementById('sum');
      output.innerHTML = sum;
      return sum;
  }

  function popUp() {
    total = Calculate();
    alert("Je hebt to nu toe " + total + "ECTS behaald." );
  }


</script>

函数计算(){
var table=document.getElementById('table');
var items=table.getElementsByTagName('input');
var总和=0;
对于(var i=0;i
  • 在popUp()中,您没有调用Calculate(),而是调用了Calculate.output。这意味着它返回一个未定义的
  • 在Calculate()中,您没有返回值,但尝试将sum值放入元素中。我认为,根据我在本文中的理解,您也需要返回sum
  • 所以我认为代码可能是:

    <script type="text/javascript">
    
      function Calculate() {
          var table = document.getElementById('table');
          var items = table.getElementsByTagName('input');
          var sum = 0;
          for(var i=0; i<items.length; i++)
              sum += parseInt(items[i].value);
          var output = document.getElementById('sum');
          output.innerHTML = sum;
          return sum;
      }
    
      function popUp() {
        total = Calculate();
        alert("Je hebt to nu toe " + total + "ECTS behaald." );
      }
    
    
    </script>
    
    
    函数计算(){
    var table=document.getElementById('table');
    var items=table.getElementsByTagName('input');
    var总和=0;
    对于(var i=0;i
    
    
    Vakcode
    ECTS
    基准行为
    
    贝雷肯研究中心
    总数为: 函数计算(){ var table=document.getElementById('table'); var items=table.getElementsByTagName('input'); var总和=0; 对于(变量i=0;i
    您需要从
    Calculate()
    返回一个值,因此在
    return sum;
    中再添加一行;
    或者您需要将
    Calculate
    的属性命名为
    output
    。添加HTML会有所帮助。我添加了完整的代码。我想您在计算总和时忘了检查元素的类型。如果您是指我编写的“document.getElementById('table');”同时它是一个类,那么你是对的,我刚刚更改了它。但是现在我有另一个错误,说“Uncaught ReferenceError:popUp未在htmlButtoneElement.onclick(voortgangpagina.html:64)定义)“谢谢,我以前试过,现在也试过了。当我这样做时,警报框不再出现。是的,它显示“Uncaught TypeError:无法读取null的'getElementsByTagName'属性”这意味着
    table
    null
    。如果没有剩余的代码,很难说得更多。谢谢,我刚刚用完整的代码更新了问题。也谢谢,但正如我告诉前面的帮助者的那样,如果我这样做,aler框出于某种原因不会显示。您的表是否有id=“table”?请发布您的html代码。我很高兴它对您有所帮助。:)