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

300
Views
Problema de actualización de JQuery DataTable Cell InnerHTML

¡Gracias por abrir esta pregunta y ayudarme!

Estoy usando JQuery DataTable y quiero actualizar InnerHTML en cada celda. La razón es que eso:

Los datos originales en cada celda de DataTable son texto sin formato y difíciles de leer. Por ejemplo:

[ { "wikidataid": "Q142" }, { "wikidataid": "Q55" }, { "wikidataid": "Q39" }, { "wikidataid": "Q34" }, { "wikidataid": "Q36" }, { "wikidataid": "Q20" } ]

Por lo tanto, quiero crear una lista desordenada para que los datos puedan mostrarse formateados en lugar de un texto sin formato y anular el HTML interno de las celdas de la tabla de datos.

Este es el código que escribí:

 var table = $('#queryTable').DataTable(); var data = table.rows().data(); console.log(data.length); //Loop each row data.each(function (value, index) { //Loop each column for(var i=0; i<value.length; i++){ // only column 2 and 3 are the data we want to format if (i != 2 && i != 3){ continue; } var content = JSON.parse(value[i]) var ul=document.createElement('ul'); for (var k = 0; k < content.length; ++k) { var li=document.createElement('li'); li.setAttribute("class", "list"); li.innerHTML = "WikiDataId: " + content[k].wikidataid; // Use innerHTML to set the text if (content[k].attributes != null) { for (var j = 0; j < content[k].attributes.length; ++j){ var ulsub=document.createElement('ul'); ulsub.value = content[k].attributes[j].changedtype; var liName=document.createElement('li'); liName.innerHTML = content[k].attributes[j].name + ": " + content[k].attributes[j].value; ulsub.appendChild(liName); li.appendChild(ulsub); } } ul.appendChild(li); } // console.log(index); // console.log(i); // console.log(ul); //table.cell(index, i).data(ul.html()).draw(); table.cell(index, i).node().innerHTML = null; table.cell(index, i).node().appendChild(ul); console.log(table.cell(index, i).node()); }; }); });

Sin embargo, después de ejecutar el código anterior, aunque los datos están formateados en una lista desordenada. Pero los datos en las celdas de cada fila no se actualizan correctamente. Por ejemplo, los datos de la primera fila contienen los datos de la tercera fila, los datos de la segunda fila contienen los datos de la quinta fila, los datos de la tercera fila contienen los datos de la sexta fila, etc.

No estoy seguro si la forma en que actualizo el html interno es correcta. ¿Alguien podría ayudar aquí? ¡Muchas gracias!

about 4 years ago · Juan Pablo Isaza
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!