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

71
Vistas
Cambio de elemento específico con la misma función

Así que quiero codificar un Vanilla Script que cambie el estilo de un texto individualmente. Aquí está el código de la misma:

 <body> <p class="black_to_red" onclick="get_red()">If I click this, I am red</p> <p class="black_to_red" onclick="get_red()">If I click this, I am red</p> <script> function get_red() { text = document.getElementsByClassName("black_to_red"); for (let i = 0; i < text.length; i++) { text[i].style.color = 'red'; } } </script> </body>

Pero este código solo funciona un poco. La razón por la que digo "un poco" es porque cuando hago clic en un texto cambia el estilo de ambos textos. ¿Hay alguna manera de hacer que solo afecte el texto específico en el que hago clic?

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

0

Hay varias maneras de hacer eso.

Si se apega a los atributos onclick , entonces pase this como argumento, para que la función sepa qué elemento obtuvo el evento click.

 function get_red(elem) { elem.style.color = 'red'; }
 <p class="black_to_red" onclick="get_red(this)">If I click this, I am red</p> <p class="black_to_red" onclick="get_red(this)">If I click this, I am red</p>

La mejor práctica es vincular el controlador de eventos de clic mediante código y no utilizar atributos onclick . En ese caso, this se referirá al elemento que obtuvo el evento de clic:

 function get_red() { this.style.color = 'red'; } document.querySelectorAll(".black_to_red").forEach(function (elem) { elem.addEventListener("click", get_red); });
 <p class="black_to_red">If I click this, I am red</p> <p class="black_to_red">If I click this, I am red</p>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pasar el elemento DOM actual tiene un parámetro hará lo que quieras.

Cambia tu HTML a

 <p class="black_to_red" onclick="get_red(this)">If I click this, I am red</p>

Y la función a

 function get_red(element) { element.style.color = 'red'; }

Obs: siempre es preferible usar oyentes en lugar de onclick

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