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

158
Vistas
¿Cómo detengo la ejecución de JavaScript en páginas que no contienen elementos en la consulta?

Tengo un JavaScript muy simple en un sitio web de desarrollo de Joomla 4x para agregar una clase al primer elemento que encuentra que contiene clases específicas. Funciona perfectamente en la página que contiene esos elementos, pero en cualquier otra página aparece el mensaje "Error de tipo no detectado: el año es nulo". Estoy usando querySelector para que el script se detenga en la primera instancia de la clase CSS, que es lo que quiero.

Este es mi código:

 if (document.querySelectorAll('.group-toggle')) { let Years = document.querySelector('.year.toggle-form'); Years.classList.add('form-opened'); }

He probado lo siguiente:

 function openYears() { if (document.querySelectorAll('.group-toggle')) { let Years = document.querySelector('.year.toggle-form'); Years.classList.add('form-opened'); } }

y también

 if (document.querySelector('.group-toggle')) { let Years = document.querySelector('.year.toggle-form'); function openYears(){ let Years = document.querySelector('.year.toggle-form'); if (document.querySelector('.group-toggle')) { Years.classList.add('form-opened'); } } }

pero aunque el mensaje de error desaparece, el script ya no funciona.

Estoy seguro de que es deslumbrantemente obvio para ti, pero no para mí.

AIT

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

0

Si no hay ningún elemento coincidente, el resultado de querySelectorAll será una matriz vacía. Sin embargo, una matriz vacía también es veraz ( if ([]) alert('hi') mostrará la alerta).

En su lugar, puede verificar la longitud de la matriz ( if (document.querySelectorAll(...).length) - cero no es cierto) o reemplazar querySelectorAll con querySelector simple, porque este último busca solo el primer elemento coincidente y lo devuelve ( no es una matriz de elementos), y devolverá un null (que no es cierto) si no se puede encontrar dicho elemento.

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