Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
¿Por qué tengo el valor "Nan" del ciclo que resume la columna de la tabla?

Tengo un problema con este bucle. Quiero resumir los valores de la tabla, pero tengo el valor NaN de este código. ¿Debo cambiar algo o hay alguna otra solución para resumir?

 function sumUpWallet() { var walletTable = document.getElementById("usersCrypto"); let sumVal = 0; for (var i = 1; i < (walletTable.rows.length - 2); i++) { const tableData = walletTable.rows[i].cells[3]; if (tableData && tableData.textContent) { const value = parseFloat(tableData.textContent); if (!isNaN(value)) { sumVal = sumVal + value; }; }; } console.log(sumVal); document.getElementById("sumDol").innerHTML = sumVal.toFixed(2); };

La tabla es dinámica, después de hacer clic en el botón se agrega otra fila. Por ejemplo, puede verse así:

página de captura de pantalla

Tabla de ejemplo de accesibilidad

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El problema es cuando haces:

 console.log(walletTable.rows[i].cells[3]);

obtienes el resultado de seguimiento <td>19271.71</td> en lugar de la figura 19271.71 para el primer resultado de i

Para solucionar esto, agregue .textContent al parseFloat como se muestra a continuación

 sumVal = sumVal + parseFloat(walletTable.rows[i].cells[3].textContent);

Adicional:

Parece que está accediendo a datos fuera del rango de la tabla. Debe hacer alguna validación para asegurarse de que lo que está leyendo sea válido antes de agregarlo a sumVal.

 const tableData = walletTable.rows[i].cells[3]; if (tableData && tableData.textContent) { const value = parseFloat(tableData.textContent); if (!isNaN(value)) { sumVal = sumVal + value; } }

Se agregó un ejemplo que prueba que el código anterior funciona.

 function sumUpWallet() { var walletTable = document.getElementById("usersCrypto"); let sumVal = 0; for (var i = 1; i < (walletTable.rows.length - 2); i++) { const tableData = walletTable.rows[i].cells[3]; if (tableData && tableData.textContent) { const value = parseFloat(tableData.textContent); if (!isNaN(value)) { sumVal = sumVal + value; }; }; } console.log(sumVal); document.getElementById("sumDol").innerHTML = sumVal.toFixed(2); }; sumUpWallet();
 <table id="usersCrypto" border="1"> <tr> <td> Name </td> <td> price </td> <td> Amount </td> <td> Header </td> <tr> <tr> <td> Bitcoin </td> <td> 19271.71 </td> <td> 1 </td> <td> 19271.71 </td> <tr> <tr> <td> Ethereum </td> <td> 1070.11 </td> <td> 2 </td> <td> 2140.23 </td> <tr> <tr> <td colspan="2"> </td> <td> PLN </td> <td> DOL$ </td> <tr> <tr> <td colspan="2"> Summary Value </td> <td> </td> <td id="sumDol"> </td> <tr> </table>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!