Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

110
Visualizações
No puedo entender por qué mi script JS no se activará

Soy relativamente nuevo en JS, por lo que podría ser descaradamente obvio, así que me disculpo.

He escrito una pequeña función que genera un código hexadecimal aleatorio para aplicarlo a una clase html, pero simplemente no se inicializa.

 <!DOCTYPE html>
 </head> <body onload="get_random_color()"> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <script language="javascript"> var rand = document.getElementsByClassName("para"); function get_random_color(){ var letters ='0123456789ABCDEF'.split(''); var color = '#'; for (var i = 0; i < 6; i++) { color += letters[Math.round(Math.random() * 15 )]; } return color; rand.style.backgroundColor = get_random_color(); } </script> </body>

Cualquier idea o ayuda sería muy apreciada, gracias

j

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Tienes muchos problemas con el código.

  • Tu body onload llama a get_random_color , que genera correctamente el color , pero luego tienes un return que evita que se asigne al estilo en la siguiente línea.
  • A la variable rand no se le asigna un elemento sino una colección de elementos. Consulte la documentación de getElementsByClassName . Incluso si su return no estuviera allí, la colección no tiene una propiedad de estilo. Tienes que establecer el estilo en cada elemento usando un bucle for .
  • Dentro de la función get_random_color , el rand.style.backgroundColor = get_random_color(); se llama a sí mismo: si return no estuviera allí, obtendría un desbordamiento de pila porque el método se llamaría a sí mismo una y otra vez.
  • En general, siempre nombre sus identificadores (como funciones y variables) para que se ajusten a su propósito. La variable rand tiene un nombre incorrecto: deberían ser paragraphs o algo así.
about 4 years ago · Juan Pablo Isaza Relatório

0

Reúna los párrafos por clase usando querySelectorAll , itere sobre ellos y aplique un nuevo color a cada uno llamando a la función.

 const paras = document.querySelectorAll('.para'); paras.forEach(para => para.style.color = get_random_color()); function get_random_color() { var letters = '0123456789ABCDEF'.split(''); var color = '#'; for (var i = 0; i < 6; i++) { color += letters[Math.round(Math.random() * 15)]; } return color; }
 <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p> <p class="para">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis.</p>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda