Почему мой оператор IF не работает в JavaScript?

#javascript #if-statement

#javascript #if-statement

Вопрос:

Может кто-нибудь объяснить, почему мой оператор if не работает в функции displayStorageSizeToConvert()? Пожалуйста, и спасибо!

 
var userInput = document.getElementById("userInput");
var kbButton = document.getElementById("k");
var mbButton = document.getElementById("mbButton");
var KilobyteDisplay = document.getElementById('KilobyteDisplay');
var megabyteDisplay = document.getElementById('megabyteDisplay');
var submitButton = document.getElementById('submit');

function displayStorageSizeToConvert() {
    if (kbButton.clicked === true) {    
        return convertFrom.innerHTML = "KB";    
    }
    else {
        return convertFrom.innerHTML = "MB";
    }
}


    function convertStorageSizeFrom() {
    if(convertFrom.value === "KB") {
        KilobyteDisplay.innerHTML = userInput.value   " KB";
        megabyteDisplay.innerHTML = userInput.value / 1000   " MB";
    }
}
 

Комментарии:

1. Где вы вызываете displayStorageSizeToConvert?

2. Недостаточно информации. Вы не показываете, как вызывается функция, как кнопка получает свое clicked свойство или какие данные clicked содержатся.

3. попробуйте использовать kbButton.clicked == true вместо строгой проверки типа.

4. @jithil это плохой совет. OP должен знать, по крайней мере, какой тип значения он ожидает. И если kbButton.clicked он не относится к этому типу, у него есть другая проблема (потенциальная ошибка). imo, если JS откажется == от мира, это приведет только к потере кода с ошибками.

5. Хорошо. Понятно.

Ответ №1:

Не похоже, что вы где-то вызываете свою функцию.

Кроме того, вы должны прикрепить эту функцию к обработчику кликов:

 function displayInKB() {
    convertFrom.innerHTML = "KB";    
}

function displayInMb() {
    convertFrom.innerHTML = "MB";    
}

kbButton.addEventListener('click', displayInKb);
mbButton.addEventListener('click', displayInMb)
 

Ответ №2:

В настоящее время вы никогда не вызываете / не запускаете displayStorageSizeToConvert() .

Я думаю, вы хотите создать слушателя. Вы можете добавить его следующим образом:

 kbButton.addEventListener('click', () => convertForm.innerHTML = "KB")