Предполагается, что код находит сумму двух значений времени, введенных в часах и минутах, но он дает мне вывод «NaN».
function add() {
var min, hrs;
let a = Number(document.getElementById("first"));
let b = Number(document.getElementById("third"));
let c = Number(document.getElementById("second"));
let d = Number(document.getElementById("fourth"));
min = c + d;
hrs = min / 60;
min = min % 60;
hrs = hrs + a + b;
document.write(hrs);
document.write(min);
}
<h1>Time Calculator</h1>
<h2>This calculator can be used to “add” two time values.</h2>
Enter hours: <input id = "first">
Enter Minutes: <input id = "second">
Enter hours: <input id = "third">
Enter Minutes: <input id = "fourth">
<button onclick = "add()">ADD</button>
я пытался, но он показал какую-то ошибку отступа
Я думаю, у вас опечатка: min = min%60
Number
уже создает номер. Звонок value
на номер возвращает undefined
.
@DaveNewton, который был в исходном коде, был таким с самого начала, я просматривал некоторые сайты и добавлял их позже. забыл удалить при размещении здесь, даже без этого ответ тот же
@JimVanPetten нет, чувак, я думаю, это не опечатка ..
Теперь вы пытаетесь создать число из элемента, а не из текстового значения элемента. Также может быть хорошей идеей написать ответ на элемент, а не использовать document.write
.
Также см. этот связанный вопрос: Какие есть альтернативы document.write?
Вы пропускаете ценностные вызовы на getElementById
s! Так:
let a = Number(document.getElementById("first").value);
let b = Number(document.getElementById("third").value);
let c = Number(document.getElementById("second").value);
let d = Number(document.getElementById("fourth").value);
Быстрая рекомендация: добавьте type = "number"
к входным данным, чтобы убедиться, что входные данные являются числами.
<h1>Time Calculator</h1>
<h2>This calculator can be used to “add” two time values.</h2>
Enter hours: <input id = "first" type = "number">
Enter Minutes: <input id = "second" type = "number">
Enter hours: <input id = "third" type = "number">
Enter Minutes: <input id = "fourth" type = "number">
<button onclick = "add()">ADD</button>
Полный код:
function add() {
var min, hrs;
let a = Number(document.getElementById("first").value);
let b = Number(document.getElementById("third").value);
let c = Number(document.getElementById("second").value);
let d = Number(document.getElementById("fourth").value);
min = c + d;
hrs = min / 60;
min = min % 60;
hrs = hrs + a + b;
document.write(hrs);
document.write(min);
}
еще не рабочий человек...
Попробуйте полную функцию редактирования, которое я только что сделал. Я получил это, работая над кодовой ручкой: codepen.io/Chanodev/pen/yLqXqga. Попробуйте добавить всего 2 с.
Помните, что вы можете легко отлаживать свой код построчно, используя только браузер.
и ты это поймешь, позвонив
document.getElementById("fourth")
вернет узел, но вы завершаете его Number()
а затем вы звоните .value
с выхода Number()
то, что вы могли бы сделать вместо этого, было бы, например,
function getNumber(str) {
return Number(document.getElementById(str).value);
}
function add() {
var min, hrs;
let a = getNumber("first");
let b = getNumber("third");
let c = getNumber("second");
let d = getNumber("fourth");
min = c + d;
hrs = min / 60;
min = min % 60;
hrs = hrs + a + b;
document.write(hrs);
document.write(min);
}
живой пример
function getNumber(str) {
return Number(document.getElementById(str).value);
}
function add() {
var min, hrs;
let a = getNumber("first");
let b = getNumber("third");
let c = getNumber("second");
let d = getNumber("fourth");
min = c + d;
hrs = min / 60;
min = min % 60;
hrs = hrs + a + b;
document.write(hrs);
document.write(min);
}
<h1>Time Calculator</h1>
<h2>This calculator can be used to “add” two time values.</h2>
Enter hours: <input id = "first">
Enter Minutes: <input id = "second">
Enter hours: <input id = "third">
Enter Minutes: <input id = "fourth">
<button onclick = "add()">ADD</button>
Пожалуйста, включите ваш код в текст вашего поста; ссылки могут порваться.