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

132
Visualizações
Consola que bloquea la ejecución porque getElementbyId es nulo (pero quiero que lo sea)

EDITAR: Las respuestas del Sr. Veron, el Sr. Spungin y el Sr. Shah se ajustan perfectamente a mis necesidades. Mi error es evidente y la advertencia de la consola es perfectamente sensata. Gracias a todos.

Estoy tratando de determinar la existencia de un elemento en el DOM. De acuerdo con lo que han sugerido las publicaciones existentes , he recurrido a usar getElementbyId + querySelector y luego verifico si es nulo/indefinido con un condicional.

 let target = document.getElementbyId(a).querySelector(b) if(typeof(target) != 'undefined' && target != null){ ... }

Aquí es donde me encuentro con un error. Cuando se ejecuta la primera línea, mi consola arroja el error

 Uncaught (in promise) TypeError: document.getElementById(...) is null

porque "objetivo" es nulo, pero tengo la intención de que sea nulo y, por lo tanto, me molesta un poco que la consola actúe en contra de mis intereses por una vez.

Esta es una implementación ofrecida y respaldada por muchos en Stack Overflow y, sin embargo, no puedo encontrar personas que enfrenten la misma obstrucción que yo. Por lo tanto, agradecería cualquier explicación de por qué se necesita tal advertencia o formas de eludirla (una mejor implementación de lo que se ha sugerido ampliamente). Muchas gracias.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

verifique si no está definido antes de llamar a querySelector

 let target = document.getElementbyId(a) ? document.getElementbyId(a).querySelector(b) : undefined
about 4 years ago · Juan Pablo Isaza Relatório

0

Está recibiendo este error:

No capturado (en promesa) TypeError: document.getElementById(...) es nulo

Porque está intentando usar querySelector en el elemento que podría ser null o undefined .

Ir con este enfoque:

 let element = document.getElementbyId(a); let target = element && element.querySelector(b); if(typeof(target) != 'undefined' && target != null){ ... }
about 4 years ago · Juan Pablo Isaza Relatório

0

Como señalaron otros, cuando .getElementbyId falla, no está undefined y al intentar llamar a métodos en undefined se genera un error.

Para esto está el operador de encadenamiento opcional ( ?. ).

También puede simplificar su condicional para que sea target != undefined , ya que ambos métodos devolverán undefined y variable != undefined devuelve verdadero para undefined y null .

 let target = document.getElementbyId(a)?.querySelector(b); // here ^ if(target != undefined){ ... }
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