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

218
Visualizações
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 Respostas
Responde à pergunta

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 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