所以我想要一个基于数组元素动态创建的按钮,但是在尝试将参数传递给 onclick 函数时遇到错误
function bringforward(maincourse){
var newdiv = document.createElement('div');
newdiv.id="Current class"
newdiv.style="background-color:#207420;height:440px;width:440px";
for(var i = 0;i<maincourse.gradingareas.length; i++){
var gradeplace = document.createElement('p');
gradeplace.id = grades;
newdiv.appendChild(gradeplace);
var button = document.createElement('button');
button.innerHTML = 'Add Grade';
button.onclick = function myfunc(){AddGrade(maincourse.gradingareas[i])};
gradeplace.appendChild(button);
}
AddGrade 函数是一个简单的警报,它将推送给定的值
function AddGrade(toadd){
var newgrade=prompt("Please enter a grade scaled up to 100 points","0 - 100");
if (newgrade!=null){
toadd.grades.push(newgrade);
}
}
课程和评分区“对象”:
function Course(name, gradingareas, finalgrade) {
this.name = name;
this.gradingareas = gradingareas; //array of gradingareas
this.finalgrade = finalgrade;
}
function GradingArea(name, weight, grades){
this.name = name;
this.weight = weight;
this.grades = grades; //array of grades
}
我认为将函数包装在 onClick 中可以解决范围问题,但我在 Addgrade 中收到错误消息,说它正在尝试访问未定义变量的字段。谢谢您的帮助