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

212
Vistas
Una forma más eficiente de seleccionar un elemento si existe, luego hacer algo con él en JavaScript vainilla

Estoy haciendo algunas conversiones de jQuery a Vanilla JS en mi sitio web. En jQuery puedo hacer esto:

 $("#nav-menu>ul>li.active").removeClass("active");

que, todo en una línea, eliminará la clase 'activa' de cualquier elemento <li> que la tenga (solo habría uno). Si ningún elemento <li> tiene esa clase, no hay errores y mi secuencia de comandos continúa ejecutándose.

Sin embargo, en Vanilla JS, si hago esto:

 document.querySelector('#nav-menu>ul>li.active').classList.remove('active');

y actualmente no hay elementos <li> con la clase 'actove', aparece el siguiente error y mi secuencia de comandos deja de ejecutarse:

 Uncaught TypeError: Cannot read prperties of null (reading 'classlist')

Puedo solucionar esto así:

 var active = document.querySelector('#nav-menu>ul>li.active'); if(active) { active.classList.remove('active'); }

Pero me pregunto si hay una forma mejor y más corta de hacer esto (es decir, seleccione un elemento si existe, luego haga algo con él). ¿Hay una forma abreviada o una forma de hacerlo en menos líneas, etc.?

Gracias por adelantado.

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

0

Puede usar el encadenamiento opcional para este propósito, que puede acceder a las propiedades o entrar en una llamada de función encadenada solo si la expresión de la izquierda no está indefinida ni es nula.

 document.querySelector('#nav-menu>ul>li.active')?.classList.remove('active');
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