Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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,我有一个HTML表单,有4列。前两个是名字和姓氏。第三个是HTML日期,它接收用户的出生日期。第四个是从HTML出生日期字段生成的年龄 这里的问题是,我想计算所有年龄的总和,然后将其显示在HTML表中,然后计算所有年龄的平均值,并将结果显示在HTML中 仔细观察,除了所有年龄的总和及其平均值外,计数的其他一切都在工作和显示 下面是我的HTML <html> <head> <title>Date of Birth Registration</title&g

我有一个HTML表单,有4列。前两个是名字和姓氏。第三个是HTML日期,它接收用户的出生日期。第四个是从HTML出生日期字段生成的年龄

这里的问题是,我想计算所有年龄的总和,然后将其显示在HTML表中,然后计算所有年龄的平均值,并将结果显示在HTML中

仔细观察,除了所有年龄的总和及其平均值外,计数的其他一切都在工作和显示

下面是我的HTML

<html>
<head>
<title>Date of Birth Registration</title>

<link rel="stylesheet" type="text/javascript"   href="http://cdnjs.cloudflare.com/ajax/libs/uikit/1.2.0/css/uikit.css"/>
<link rel="stylesheet" type="text/javascript" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"/>
<link rel="stylesheet" type="text/javascript" href="http://cdnjs.cloudflare.com/ajax/libs/uikit/1.2.0/css/uikit.min.css" />
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/uikit/1.2.0/js/uikit.js"></script> 
<script type="text/javascript" src= "http://cdnjs.cloudflare.com/ajax/libs/uikit/1.2.0/js/uikit.min.js"></script>
<script type="text/javascript" src= "http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="formiteration5.js"></script>
</head>
<body>
<div class="alert alert-success"><h1>Birth Registration</h1></div>
<hr />
<form id ="inputFrom" class="uk-form">
<label>First Name:
<input type='text' id='firstname'  value='' placeholder="" class="uk-form-success"/>
</label>
<label>Last Name:
<input type='text' id='lastname' placeholder="" class="uk-form-success"/>
</label>
<label for="size_1">D.O.B:</label><input type="date" name="size" id="birthDate" value="dd/mm/yy" laceholder="" class="uk-form-danger"/>
<input type='button' onclick='regBirth()' value='Add new person' class="uk-button-primary"/>
</form>
<hr />
<table id="details" class="uk-table uk-table-hover uk-table-striped uk-table-condensed">
<tr>
<th>First NameName</th>
<th>Last Name</th>
<th>Date of Birth</th>
<th>Age</th>
</tr> 
</table>

<h4>Statistics</h1>
<hr />
<div padding ="10px 10px 10px">
<div class="uk-grid">
<div class="uk-width-1-3">
<div class="uk-panel uk-panel-box-primary"><h4><br/>
email:m.cainton@gmail.com</p>

</div>
</div>
<div class="uk-width-1-3">
<div class="uk-panel uk-panel-box-primary"><h5><b>Total Count:</b></h5>
<p id="count"></p><h5><b>Sum:</b></h5>
<p name ="sum"id="sumofAge"></p></div>
</div>
<div class="uk-width-1-3">
<div class="uk-panel uk-panel-box-primary" ><h5><b>Mean:</b></h5>
<p id="meanAge"></p>
</div>
</div>
</div>
</div>
</body>
</html>

出生登记日期
出生登记

名字: 姓氏: D.O.B:
名字 姓 出生日期 年龄 统计

电邮:m。cainton@gmail.com

总数:

总和:

意思是:

下面是我的Javascript

var allPeople = [];// global array
function regBirth() {


'use strict';
 // myArray should be instantiated as an object and not as an array
    var myObject = {};// empty object initialisation
    //var fname,lname,dob;
    myObject.fname = document.getElementById('firstname').value; //Object one
    myObject.lname = document.getElementById('lastname').value;//Object two
    myObject.dob = document.getElementById('birthDate').value;//Object three
    var dateOfBirth = new Date(myObject.dob);//Date of Birth
    var today = new Date();
    var dobYear = dateOfBirth.getFullYear();
    var dobMonth = dateOfBirth.getMonth() + 1;
    var dobDay = dateOfBirth.getDate();

    var myAge = Math.floor((today - dateOfBirth )/ 31557600000);
    myAge = document.getElementsByClassName("sum");
    var total = 0;
    for (var i = 0; i < myAge.length; i++) {
        total += Number(myAge[i].value);
    }

    document.getElementById('sumofAge').value = total;

    console.log(myAge);
    //document.getElementById("age").innerHTML = myAge; 
    allPeople.push(myObject);
    console.log(allPeople.length);
    console.log(allPeople);
    // use var when you create tabularForm 
    var inputForm = document.getElementById("inputFrom").reset();
    var tabularForm = document.createDocumentFragment();
    var tablerow = document.createElement('tr'); 
    // iterate through the allPeople array
    // append to the dom the latest person (ie., myArray)
    var fname = document.createElement('td');//Start of First Name
    fname.innerHTML = myObject.fname;
    tablerow.appendChild(fname);//End of First Name

    var lname = document.createElement('td');//Start Lastname
    lname.innerHTML = myObject.lname;
    tablerow.appendChild(lname);//End Lastname

    var dob = document.createElement('td');//Start DOB
    dob.innerHTML = myObject.dob;
    tablerow.appendChild(dob);//End DOB

    var myBirthDay = document.createElement('td'); //Start of Birth Day
    myBirthDay.innerHTML = myAge;
    tablerow.appendChild(myBirthDay);//End of Birth Day

    tabularForm.appendChild(tablerow); 
    document.getElementById("details").appendChild(tabularForm);  

    var totalPeople = allPeople.length; //Start Count
    document.getElementById("count").innerHTML=totalPeople; // Count declaration
}
var allPeople=[];//全局数组
函数regBirth(){
"严格使用",;
//myArray应实例化为对象,而不是数组
var myObject={};//空对象初始化
//变量fname、lname、dob;
myObject.fname=document.getElementById('firstname').value;//对象一
myObject.lname=document.getElementById('lastname').value;//对象二
myObject.dob=document.getElementById('birthDate').value;//对象三
var dateOfBirth=新日期(myObject.dob);//出生日期
var today=新日期();
var dobYear=dateOfBirth.getFullYear();
var dobMonth=dateOfBirth.getMonth()+1;
var dobDay=dateOfBirth.getDate();
var myAge=数学地板((今天-出生日期)/31557600000);
myAge=document.getElementsByCassName(“总和”);
var合计=0;
对于(变量i=0;i
myAge首先用作数字,然后用作数组,我认为这可能会给您带来一些问题。。。这更有意义:

var myAge = Math.floor((today - dateOfBirth) / 31557600000);
var sum = document.getElementsByClassName("sum");
var total = 0;
for (var i = 0; i < sum.length; i++) {
     total += Number(sum[i].value);
}
var myAge=Math.floor((今天-出生日期)/31557600000);
var sum=document.getElementsByClassName(“sum”);
var合计=0;
对于(变量i=0;i
控制台中有错误消息吗?ReferenceError:total未定义…这就是错误当我还试图查找您的错误时,a发现了一个错误。年龄的计算是错误的。结果是减少了一年。别忘了检查它。因为它是以日期而不是月份为基础的。例如,如果生日是1980年3月23日,今天是2014年3月19日,虽然现在是34岁,但我仍然是33岁,因为我还没有到3月23日……当我输入2014年3月23日的日期时我是34岁,我的家庭比我小了一岁。另外,第二个错误是,没有css类为“sum”的元素不存在。那么sum从何处获取其值?@IslandKing根据您的javascript代码,应该有类为“sum”的元素,sum变量应该从中获取其值。但是,您的HTML中没有任何这样的元素。@IslandKing错误的真正原因是,您试图用空值求和一个值。如何执行此var sum=myAge;var合计=0;对于(var i=0;i