Tengo una tabla en la que quiero ocultar celdas durante más de una semana determinada. Para esto utilizo una función hideWeekCells. Funciona bien cuando estoy usando solo el número en lugar de la semana actual aquí -> _el.dataset.week > 24 (funciona bien), pero cuando traté de cambiarlo a la variable dinámica semana actual. Hay un problema. La función comienza a ocultar las células a las 17 semanas en lugar de detenerse a las 24 semanas.
function hideWeekCells(){ const myAnchor = document.getElementById("myAnchor"); currentweek = myAnchor.dataset.currentweek; let weeks = document.querySelectorAll("[data-week]") //console.log( 'weeks : ', weeks ); let weeks_array = Array.from( weeks ).filter((_el)=> _el.dataset.week > current week); console.log( 'weeks_array final : ', weeks_array ); weeks_array.forEach(element => { element.style.display = 'none'; }); };Traté de convertir la semana actual en números con currentweek.valueOf(); , pero no ayudó.
¿Es un problema con javascript y mi función o tal vez es un problema con mi tabla?
El conjunto de dataset devuelve una cadena de forma predeterminada, por lo que debe convertirlos en números mediante Number() para sus comparaciones de números.
Otra nota al margen, debe definir la currentweek con const o let que alcance esa variable en la función.
function hideWeekCells(){ const myAnchor = document.getElementById("myAnchor"); const currentweek = Number(myAnchor.dataset.currentweek); let weeks = document.querySelectorAll("[data-week]") //console.log( 'weeks : ', weeks ); let weeks_array = Array.from( weeks ).filter((_el)=> Number(_el.dataset.week) > currentweek); console.log( 'weeks_array final : ', weeks_array ); weeks_array.forEach(element => { element.style.display = 'none'; }); };