Estoy tratando de corregir un error de NaN.
Al ejecutar el código en la consola me da la respuesta correcta. Sin embargo, cuando intento imprimirlo en una etiqueta HTML H1, el código devuelve un error NaN.
Traté de usar funciones nativas (es decir: parseFloat(), .toString();), pero no funcionó según lo planeado.
¿Podría arrojar una luz, por favor?
const tempConvert = parseFloat (document.querySelector('input')); function convertTemp(tempConvert) { switch (slt.value) { case 'farenheit': document.querySelector('h1').innerHTML = `${convertCToF(tempConvert)} Fº`; break; case 'kelvin': document.querySelector('h1').innerHTML = `${convertCToK(tempConvert)} Kº`; break; default: alert('Selec an option.'); break; } } function convertCToF(tempC) { return tempC * 1.8 + 32; } function convertCToK(tempC) { return tempC + 273.15; }Tienes que obtener input.value , no input . document.querySelector('input') le dará el elemento HTML de input . Si console.log eso, verá que tiene un montón de propiedades y entre ellas está value , que contiene el texto dentro de la etiqueta de input .
Además, generalmente es una mejor idea usar innerText que usar innerHTML interno siempre que sea posible debido a razones de seguridad.
const slt = { value: 'farenheit' } function convertTemp(tempConvert) { console.log("Hello"); switch (slt.value) { case 'farenheit': document.querySelector('h1').innerText = `${convertCToF(tempConvert)} Fº`; break; case 'kelvin': document.querySelector('h1').innerText = `${convertCToK(tempConvert)} Kº`; break; default: alert('Selec an option.'); break; } } document.querySelector("#myBtn").addEventListener('click', () => convertTemp(document.querySelector('input').value)); function convertCToF(tempC) { return tempC * 1.8 + 32; } function convertCToK(tempC) { return tempC + 273.15; } <input type='text' /> <button id="myBtn">Convert</button> <h1>Result Here</h1>