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

133
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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