#javascript #html #if-statement #calculation
#javascript #HTML #if-оператор #вычисление
Вопрос:
Я пытаюсь создать код, который вычисляет ddf (ежедневный расход воды) из домохозяйства на основе типа домохозяйства, количества спален, количества жильцов и площади этажа.
Прямо сейчас я завершил код для одной семьи с любым количеством спален и жильцов (пока нет кода для площади этажа и других типов домов). Но он не показывает ответ или не вычисляет его.
if
Инструкции основаны на рекомендациях по вычислению расхода воды на основе информации.
bedrooms=document.getElementsById("bedrooms").innerHTML;
Комментарии:
1. Проверьте свои операторы
2. Вы хотите
.value
вместо.innerHTML
3. Также это
getElementById
неgetElementsById
означает, что нетs
, вы должны видеть ошибки в консоли по этому поводу. Среди других опечаток4. Научитесь отлаживать. Браузер уже многое сообщает вам, когда сталкивается с проблемой, вам просто нужно узнать, что он пытается вам сказать, научившись понимать ошибки в консоли. Использование
console
может помочь вам увидеть, какие значения имеют ваши переменные и какие свойства или методы имеет объект. Это один из лучших инструментов, которые вы можете иметь как разработчик.
Ответ №1:
Итак, у вас есть некоторые проблемы с вашим кодом.
(residence = single)
возвращает ошибку, потому что значение single не определено.
Вы не создали элемент с ddf
идентификатором.
Способ получения значения из входных данных — это .value()
и нет innerHTML
.
У вас есть опечатка с getElementsById
, должно быть getElementById
.
function calcDDF() {
var ddf=0;
let bedrooms=document.getElementById("bedrooms").value;
let occupants=document.getElementById("occupants").value;
let residence=document.getElementById("residence").value;
if (residence == 'single') {
if (bedrooms == 1 amp;amp; occupants == 2 || occupants == null) {
ddf=700;
}
if (bedrooms == 1 amp;amp; occupants > 2) {
ddf=occupants*350;
}
if (bedrooms == 2 amp;amp; occupants == 3 || occupants == null) {
ddf=1000;
}
if (bedrooms == 2 amp;amp; occupants > 3) {
ddf=occupants*350;
}
if (bedrooms == 3 amp;amp; occupants == 3.75 || occupants == null) {
ddf=1300;
}
if (bedrooms == 3 amp;amp; occupants > 3.75) {
ddf=occupants*350;
}
if (bedrooms == 4 amp;amp; occupantss == bedrooms 0.5 || occupants == null) {
ddf=1600 ((bedrooms-4)*300);
}
if (bedrooms => 4 amp;amp; occupants > bedrooms 0.5) {
ddf=occupants*350;
}
}
document.getElementById("ddf").innerHTML = ddf;
}
<input type="number" id="bedrooms" placeholder="Number of Bedrooms" />
<input type="number" id="occupants" placeholder="Number of Occupants" />
<input type="number" id="area" placeholder="Floor Area (mamp;sup2)"/>
<select name="type of residence" id="residence">
<option value=""disabled selected>Select the Type of Residence</option>
<option value="single">Single Family Dwelling</option>
<option value="multi">Multi Family</option>
<option value="luxury">Luxury Home</option>
<option value="cottage">Seasonal Cottage</option>
<option value="mobile">Mobile Home</option>
</select>
<button onclick="calcDDF()">Calculate DDF</button>
<br>
<p id="ddf"></p>
Ответ №2:
Чтобы получить входное значение, вы должны использовать .value
Кроме того, вы используете single =
в качестве оператора, который всегда будет возвращать true . Должно быть if(residence == "single")
.
Также похоже, что вы пытаетесь получить элемент, которого не существует, чтобы задать информацию. Попробуйте создать тег с идентификатором ddf
, таким как <p id='ddf'></p>
.
У вас также есть некоторые опечатки в вашем коде, которые вы должны проверить. Многие из этих ошибок можно довольно быстро найти с помощью консоли. Вы должны ознакомиться с консолью разработчика Chrome.