为什么我的数组没有作为新行追加到表中?当它这样做时,它是未定义的?JavaScript/HTML
因此,如下图所示,在控制台中,它提供了我输入的所有数据,但是它不会显示为新行。如果我将第二个函数/for循环移动到第一个循环中,它只会将每个值显示为未定义,这似乎是一个进步。为什么?我如何解决这个问题?(同样,当所有内容都在一个函数中时,每次单击按钮提交数据时,从1行变为3行)为什么我的数组没有作为新行追加到表中?当它这样做时,它是未定义的?JavaScript/HTML,javascript,html,Javascript,Html,因此,如下图所示,在控制台中,它提供了我输入的所有数据,但是它不会显示为新行。如果我将第二个函数/for循环移动到第一个循环中,它只会将每个值显示为未定义,这似乎是一个进步。为什么?我如何解决这个问题?(同样,当所有内容都在一个函数中时,每次单击按钮提交数据时,从1行变为3行) var list=[]; 函数addAppointment(){ var appointmentData={}; var inputDate=document.getElementById('date')。值; appo
var list=[];
函数addAppointment(){
var appointmentData={};
var inputDate=document.getElementById('date')。值;
appointmentData.date=输入日期;
var inputStartTime=document.getElementById('startTime')。selectedIndex;
appointmentData.startTime=输入startTime;
var inputenedtime=document.getElementById('endTime')。选择索引;
appointmentData.endTime=输入时间;
var inputSubject=document.getElementById('subject');
appointmentData.subject=输入主题;
var inputVincement=document.getElementById('地点');
appointmentData.Vince=输入地点;
列表。推送(任命数据);
}
控制台日志(“列表”,列表)
函数addData(数据){
console.log(数据)
const tbody=document.getElementById(“tbody”);
对于(变量i=0;i
日记
日记
日期
开始时间
00:00
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
结束时间
00:00
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
主题:
地点:
优先
高
中等
低
日期
开始
终点
主题
地点
优先
通过
日期
开始时间
结束时间
主题
地点
优先
日期
年
约会
您是否先运行了addAppointment()
?
看起来您正在addData定义中调用addData(list)
,这是故意的吗
我相信这可以做到:
fucntion addAppointment (){
var list = [];
function getDataFromSubmit() {
var appointmentData = {};
var inputDate = document.getElementById('date').value;
appointmentData.date = inputDate;
var inputStartTime = document.getElementById('startTime').selectedIndex;
appointmentData.startTime = inputStartTime;
var inputEndTime = document.getElementById('endTime').selectedIndex;
appointmentData.endTime = inputEndTime;
var inputSubject = document.getElementById('subject');
appointmentData.subject = inputSubject;
var inputVenue = document.getElementById('venue');
appointmentData.venue = inputVenue;
list.push(appointmentData);
}
function addData(data) {
console.log(data)
const tbody = document.getElementById("tbody");
for (var i = 0; i < data.length; i++) {
var tr = document.createElement("tr");
tr.innerHTML = `
<td>${data[i].inputDate}</td>
<td>${data[i].inputStartTime}</td>
<td>${data[i].inputEndTime}</td>
<td>${data[i].inputSubject}</td>
<td>${data[i].inputVenue}</td>
`;
tbody.append(tr);
}
}
getDataFromSubmit()
console.log("list", list)
addData(list);
}
功能添加约会(){
var列表=[];
函数getDataFromSubmit(){
var appointmentData={};
var inputDate=document.getElementById('date')。值;
appointmentData.date=输入日期;
var inputStartTime=document.getElementById('startTime')。selectedIndex;
appointmentData.startTime=输入startTime;
var inputenedtime=document.getElementById('endTime')。选择索引;
appointmentData.endTime=输入时间;
var inputSubject=document.getElementById('subject');
appointmentData.subject=输入主题;
var inputVincement=document.getElementById('地点');
appointmentData.Vince=输入地点;
列表。推送(任命数据);
}
函数addData(数据){
console.log(数据)
const tbody=document.getElementById(“tbody”);
对于(变量i=0;i
查看此位:
var inputDate = document.getElementById('date').value;
appointmentData.date = inputDate;
var inputStartTime = document.getElementById('startTime').selectedIndex;
appointmentData.startTime = inputStartTime;
var inputEndTime = document.getElementById('endTime').selectedIndex;
appointmentData.endTime = inputEndTime;
var inputSubject = document.getElementById('subject');
appointmentData.subject = inputSubject;
var inputVenue = document.getElementById('venue');
appointmentData.venue = inputVenue;
SELECT元素上的selectedIndex将返回一个数字,因此inputStartTime/inputEndTime将是数字而不是时间。将.selectedIndex更改为.value
inputSubject和InputVincement都指向元素,而不是它们的值。因此,将.value添加到两者的末尾。请尝试以下脚本:
var list = [];
let appointment = {
date: "",
startTime: "",
endTime: "",
subject: "",
venue: "",
rowData: function () {
return "<tr><td>" + this.date + "</td><td>" + this.startTime + "</td><td>" + this.endTime + "</td><td>" + this.subject + "</td><td>" + this.venue + "</td></tr>";
}
}
function addAppointment() {
let thisAppointment = Object.create(appointment);
thisAppointment.date = document.getElementById('date').value;
thisAppointment.startTime = document.getElementById('startTime').value;
thisAppointment.endTime = document.getElementById('endTime').value;
thisAppointment.subject = document.getElementById('subject').value;
thisAppointment.venue = document.getElementById('venue').value;
list.push(thisAppointment);
let tbody = document.getElementById("tbody");
tbody.innerHTML += thisAppointment.rowData();
}
var list=[];
让预约={
日期:“,
开始时间:“,
结束时间:“,
var inputDate = document.getElementById('date').value;
appointmentData.date = inputDate;
var inputStartTime = document.getElementById('startTime').selectedIndex;
appointmentData.startTime = inputStartTime;
var inputEndTime = document.getElementById('endTime').selectedIndex;
appointmentData.endTime = inputEndTime;
var inputSubject = document.getElementById('subject');
appointmentData.subject = inputSubject;
var inputVenue = document.getElementById('venue');
appointmentData.venue = inputVenue;
var list = [];
let appointment = {
date: "",
startTime: "",
endTime: "",
subject: "",
venue: "",
rowData: function () {
return "<tr><td>" + this.date + "</td><td>" + this.startTime + "</td><td>" + this.endTime + "</td><td>" + this.subject + "</td><td>" + this.venue + "</td></tr>";
}
}
function addAppointment() {
let thisAppointment = Object.create(appointment);
thisAppointment.date = document.getElementById('date').value;
thisAppointment.startTime = document.getElementById('startTime').value;
thisAppointment.endTime = document.getElementById('endTime').value;
thisAppointment.subject = document.getElementById('subject').value;
thisAppointment.venue = document.getElementById('venue').value;
list.push(thisAppointment);
let tbody = document.getElementById("tbody");
tbody.innerHTML += thisAppointment.rowData();
}