Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

168
Vistas
cómo obtener el valor de una variable declarada dentro de una función

Soy un principiante en JS. En mi proyecto personal, quiero usar una lista de datos de colores para cambiar el color div.

Logré hacerlo con select. Pero no funciona con la lista de datos. Así que decidí registrar en la consola el valor de la variable declarada en la función pero me sale el error: x no está definida. ¿Cómo hacer que funcione? (Probablemente sea una pregunta básica)

 const selectSection = document.querySelector(".select-section"); function myFunction() { var x = document.getElementById("my-select").value; selectSection.style.backgroundColor = x; } console.log(x);
 <label for="my-select">Pick a color:</label> <select name="" id="my-select" value="Choose the background color" onChange="myFunction()"> <option value="default">default</option> <optgroup label="Warm Colors"> <option value="red">red</option> <option value="orange">orange</option> <option value="yellow">yellow</option> </optgroup> <optgroup label="Cool Colors"> <option value="green">green</option> <option value="blue">blue</option> <option value="purple">purple</option> </optgroup> </select>

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Dos opciones:

1

 const selectSection = document.querySelector(".select-section"); let x; function myFunction() { x = document.getElementById("my-select").value; selectSection.style.backgroundColor = x; } myFunction() console.log(x);

2

 const selectSection = document.querySelector(".select-section"); function myFunction() { const x = document.getElementById("my-select").value; selectSection.style.backgroundColor = x; return x } const x = myFunction() console.log(x);

Recuerda nunca usar var

about 4 years ago · Juan Pablo Isaza Denunciar

0

Primero , no use la palabra clave var en su código. Lea este artículo para saber el motivo.

Segundo para resolver este problema.

  1. intente declarar sus variables en el alcance global:

    let x; // in global scope (outside the function)

  2. y asigna un valor dentro de la función:

    x = document.getElementById("my-select").value;

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede declarar la variable fuera del alcance de la función, pero debe asegurarse de acceder a esa variable solo DESPUÉS de que la función se haya completado; de lo contrario, el código se ejecutará ANTES de que se ejecute la función y la variable aún no se habrá modificado.

 const selectSection = document.querySelector(".select-section"); let x = null; function myFunction() { x = document.getElementById("my-select").value; document.body.style.backgroundColor = x; // If this line executes, we know x has been modified, so // it's safe to try to access it outside of the function showX(); } function showX(){ console.log(x); }
 <label for="my-select">Pick a color:</label> <select name="" id="my-select" value="Choose the background color" onChange="myFunction()"> <option value="default">default</option> <optgroup label="Warm Colors"> <option value="red">red</option> <option value="orange">orange</option> <option value="yellow">yellow</option> </optgroup> <optgroup label="Cool Colors"> <option value="green">green</option> <option value="blue">blue</option> <option value="purple">purple</option> </optgroup> </select>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda