Tengo un fragmento de código en el que llamo a mi servidor para obtener algunos valores y actualizar la tabla si ese valor no está presente allí. Después de la actualización, quiero que se notifique al usuario la fila donde se actualizó el valor, haciendo que el valor de la celda esté en negrita durante n segundos.
var table=document.getElementById("employee_details"); var jsonString = JSON.stringify(array); $.ajax({ url: '/server.php', type: 'POST', data: {"input":"calculate_charges", data:jsonString}, cache: false, success:function(response){ const arr3=JSON.parse(response); for(var i=0; i<arr3.length; i++){ if(table.rows[i+1].cells.item(10).innerHTML!=arr3[i][2]){ table.rows[i+1].scrollIntoView({ behavior: 'smooth', block: 'center' }); table.rows[i+1].cells.item(10).innerHTML=arr3[i][2]; setTimeout(function(){ table.rows[i+1].cells.item(10).style.fontWeight = "500"; },7000); setTimeout(function(){ table.rows[i+1].cells.item(10).style.fontWeight = "900"; },4000); } } } complete:function(){} });Al ejecutar el código, sigo recibiendo este error en la consola:
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'celdas')
Y el elemento de la celda no se pone en negrita. ¿Cómo soluciono este problema?
Use dejar entrar para bucle:
for(let i=0; i<arr3.length; i++){Acerca de dejar: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let