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

174
Vistas
Javascript: getelementsbyid dentro de la clase que está cambiando (activo)

Este es mi código HTML:

 <div class="foo active"> <div id="bar"> Hello world! </div> </div>
¡Hola Mundo!

La clase div activa siempre está cambiando, así que primero necesito ingresar a la clase foo active

¿Cómo puedo llegar a cambiar "Hola mundo!"?

 var targetDiv = document.getElementByClassName("foo active")[0].getElementsById("bar");

no está trabajando.

Sé cuando el código es así:

 <div id="foo"> <div class="bar"> Hello world! </div> </div>

Solo necesito:

 var targetDiv = document.getElementById("foo").getElementsByClassName("bar")[0];
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Solo necesita apuntar a la ID de "barra".

document.getElementById("barra").innerHTML = "texto nuevo";

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea acceder a un elemento con una identificación en HTML, no tiene que usar:

 var targetDiv = document.getElementByClassName("foo")[0].getElementsById("bar");

Simplemente puede hacer esto:

 var targetDiv = document.getElementsById("bar");

Además, necesitas algo para ejecutar el código. Por ejemplo, si hace clic en un botón, el texto cambia o si desea que el texto cambie tan pronto como se cargue el contenido DOM, puede agregar el detector de eventos DOMContentLoaded.

Prueba este código:

 <div class="foo"> <div id="bar"> Hello world! </div> <button onClick = "changeText()">Change Text!</button>
 changeText = () => { const targetVar = document.getElementById("bar"); targetVar.innerHTML = "Something else!"; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Para proporcionar algo de contexto sobre por qué sucede esto, getElementById y getElementsByClassName devuelven un elemento y una matriz de elementos respectivamente. El objeto Element tiene una serie de funciones disponibles para llamar, que incluyen (pero no se limitan a) getElementsByClassName. Sin embargo, la función getElementById no está disponible en Elementos, solo en el propio objeto Documento , lo que significa que no puede llamarlo de la forma en que intentaba hacerlo en su primer ejemplo.

Para evitar esto, puede encontrar el elemento por ID de inmediato y trabajar desde allí.

 var targetDiv = document.getElementById("foo")

o puede usar querySelector y querySelectorAll

 const targetDiv = document.querySelector(".foo.active #bar") 

 // The result you want const targetDiv = document.querySelector(".foo.active #bar") console.log(targetDiv) // An example of a result not filtered by the active class const exampleDiv = document.querySelectorAll(".foo #bar") console.log(exampleDiv)
 <div class="foo active"> <div id="bar"> Hello world! </div> </div> <div class="foo inactive"> <div id="bar"> Hello world! </div> </div>

Tenga en cuenta que, idealmente, solo hay un elemento con una ID dada en una página, ya que las ID están destinadas a ser únicas. Dicho esto, mi ejemplo no es la mejor práctica, pero parece que en su ejemplo puede haber varios elementos con la misma ID.

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