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

150
Vistas
Encuentra el elemento más cercano con la misma clase

Estoy buscando tener la dirección-departamento del elemento más cercano:

 <div> <div class="field"> <input type="text" class="address-zipcode"> </div> <div class="field"> <input type="text" class="address-department"> </div> <div class="field"> <input type="text" class="city"> </div> <div class="field"> <input type="text" class="country"> </div> </div> <div> <div class="field"> <input type="text" class="address-zipcode"> </div> <div class="field"> <input type="text" class="address-department"> </div> <div class="field"> <input type="text" class="city"> </div> <div class="field"> <input type="text" class="country"> </div> </div>

Estoy haciendo ajax, cuando grabo en el código postal, autocompleta la dirección-departamento, pero ahora tengo 2 bloques de dirección y quiero que cuando "ingreso" en la dirección-código postal, él cambie solo la dirección-departamento más cercana.

Probé con this.closest('.field').closest('.field.address-department') pero no funciona. ¿Sabes cómo puedo hacer eso? Gracias !

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

0

Estoy de acuerdo en que el nombre closest es un poco confuso. puede pensar en el closest como un selector de consulta inverso. Básicamente, encontrará el siguiente elemento principal que coincida con la declaración. así que puedes bajar pero no volver a subir con eso.

Sugeriría simplemente usar querySelector para esto. Esto sería independiente de la estructura, el orden y la profundidad.

Básicamente: regrese a una base común (en este caso, una forma circundante) y busque el elemento.

Puede encontrar esta base común llamando al closest('your-base') o accediendo a través de una identificación, o lo que sea.

 const button = document.getElementById('button'); const button2 = document.getElementById('button2'); button.addEventListener('click', () => { const form = document.getElementById('base'); const department = form.querySelector('.address-department'); if(!department) return; department.classList.toggle('found'); }) button2.addEventListener('click', () => { const form = document.getElementById('search-start'); const department = form.closest('form').querySelector('.address-department'); if(!department) return; department.classList.toggle('found'); })
 .found { background: red; }
 <form id="base"> <div> <div class="field"> <input type="text" class="address-zipcode" id="search-start"> </div> <div class="field"> <input type="text" class="address-department"> </div> <div class="field"> <input type="text" class="city"> </div> <div class="field"> <input type="text" class="country"> </div> </div> <div> <div class="field"> <input type="text" class="address-zipcode"> </div> <div class="field"> <input type="text" class="address-department"> </div> <div class="field"> <input type="text" class="city"> </div> <div class="field"> <input type="text" class="country"> </div> </div> </form> <button id="button">Find Department from Base</button> <button id="button2">Find Department from Input</button>

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