Intento crear un sitio web y escribo una función. Con esta función, al hacer clic en los iconos, se cambiará la clase de icono activa. Pero obtengo el error No se Cannot read properties of undefined (reading 'className') . He compartido la función a continuación. ¿Cuál crees que sea el problema? Esta es mi función;
function PageTransitions(){ // Button click activa class for (let i = 0; i < sectBtn.length; i++){ sectBtn[i].addEventListener('click', function(){ let currentBtn = document.querySelectorAll('.active-btn'); currentBtn[0].className = currentBtn[0].className.replace("active-btn", "") this.className += 'active-btn' }) } }¿Cuál crees que sea el problema?
No tiene ningún botón que esté seleccionado, por lo que no encuentra uno y arroja un error. Así que asegúrese de que el elemento exista antes de usarlo. Y usa classList
const currentBtn = document.querySelector('.active-btn'); if (currentBtn) currentBtn.classList.remove('active-btn'); this.classList.add('active-btn');Probablemente document.querySelectorAll('.active-btn'); devuelve una matriz vacía, debido a que su currentBtn está vacío y currentBtn[0] no está undefined . Esto hace que currentBtn[0].className falle