Я пытаюсь добавить свои getExamGrades и getLabGrades вместе, вызывая мою другую функцию, чтобы получить общую оценку, но ничего из того, что я пробовал, не работает. Все, что я сделал до сих пор, просто исключает обе функции, которые я вызываю, и оставляет все пустым. Приведенный ниже код работает отлично, просто нужна помощь с последней частью, и тогда я смогу разобраться с другими переменными и функциями.
<!DOCTYPE html>
<html>
<header>
<script>
function getExamGrades()
{
var exam1 = document.getElementById("Exam1").value;
var exam2 = document.getElementById("Exam2").value;
var exam3 = document.getElementById("Exam3").value;
var Exams = Number(exam1) + Number(exam2) + Number(exam3);
document.getElementById("examGrade").innerHTML = Exams;
}
function getLabGrades()
{
var lab1 = document.getElementById("Lab1").value;
var lab2 = document.getElementById("Lab2").value;
var lab3 = document.getElementById("Lab3").value;
var Labs = Number(lab1) + Number(lab2) + Number(lab3);
document.getElementById("labGrade").innerHTML = Labs;
}
function getTotalGrades()
{
//var Total = Number(getExamGrades()) + Number(getLabGrades();
document.getElementByID("totalGrade").innerHTML = Total;
}
</script>
</header>
<body>
Exam1: <input type = "text" name = "Exam1" value = "100" id = "Exam1">
Exam2: <input type = "text" name = "Exam2" value = "100" id = "Exam2">
Exam3: <input type = "text" name = "Exam3" value = "100" id = "Exam3">
<br><br>
<button onClick = "getExamGrades()"> Calculate Exam Grade </button>
Total: <output id = "examGrade"> </output>
<br><br>
Lab1: <input type = "text" name = "Lab1" value = "100" id = "Lab1">
Lab2: <input type = "text" name = "Lab2" value = "100" id = "Lab2">
Lab3: <input type = "text" name = "Lab3" value = "100" id = "Lab3">
<br><br>
<button onClick = "getLabGrades()"> Calculate Lab Grade </button>
Total: <output id = "labGrade"> </output>
<br><br>
<button onClick = "getTotalGrades()"> Calculate Total Grade </button>
Final Grade: <output id = "totalGrade"> </output>
</body>
</html>
Я сделал это, и первые две функции работают, но getTotalGrades() по-прежнему ничего не показывает.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваши функции не возвращают значения. Если бы они это сделали, то то, что вы пытались сделать, сработало бы. Попробуйте это так:
function getExamGrades()
{
var exam1 = document.getElementById("Exam1").value;
var exam2 = document.getElementById("Exam2").value;
var exam3 = document.getElementById("Exam3").value;
var Exams = Number(exam1) + Number(exam2) + Number(exam3);
document.getElementById("examGrade").innerHTML = Exams;
return Exams;
}
function getLabGrades()
{
var lab1 = document.getElementById("Lab1").value;
var lab2 = document.getElementById("Lab2").value;
var lab3 = document.getElementById("Lab3").value;
var Labs = Number(lab1) + Number(lab2) + Number(lab3);
document.getElementById("labGrade").innerHTML = Labs;
return Labs;
}
function getTotalGrades()
{
var Total = Number(getExamGrades()) + Number(getLabGrades());
document.getElementById("totalGrade").innerHTML = Total;
}
Были и другие мелкие проблемы, которые я исправил для вас. Вы можете увидеть рабочий пример здесь: http://jsfiddle.net/8js5uewc/2/
Я сделал это, и первые две функции работают, но getTotalGrades() по-прежнему ничего не показывает.
Это потому, что функция getTotalGrades использует document.getElementByID — обратите внимание на последний заглавный D, который должен быть строчным.
Да, это была одна из вещей, которые я исправил. Другой заключался в том, что событие кнопки должно быть onclick, а не onClick.
Я ненавижу свою жизнь.. Большое спасибо @paul23
Надеюсь, это помогло вам, @CoryDunagan. Добро пожаловать в СО!
Добро пожаловать, Кори. Ваши функции
getExamGradesиgetLabGradesне возвращают никаких значений. Они устанавливают значения некоторых элементов HTML, но ничего не возвращают. Попробуйте вернутьExamsиLabsсоответственно и посмотрите, не поможет ли это.