从函数返回动态填充<td>

时间:2020-07-17 13:54:26

标签: javascript html

我要动态更新单元格的内容,但前提是数据库中存在这些单元格的数据。

我尝试过的是在每次addDataIfPres函数被动态生成时,从适当的位置添加一个对addDataIfPres函数的调用,希望它会被函数返回的数据填充:如果该学生存在,则为空,否则为“空”。

但是,这不起作用。每次创建HTML单元格时,如何调用function makeEditTableHTML(studentArray, groupID) { return populateDB(groupID, function(data) { // Data from AJAX POST console.log(data); function addDataIfPres(col, student, data) { for(var j=0; j < data.length; j++) { if ((student == data[j][0]) && (col == 1)) { res = data[j][1]; } else { res = ""; } } return res; } var result = "<table id='dataEditTableid' class='stripe' border=1><thead><tr><td><b>ID</b></td><td><b>Student Email</b></td><td><b>Group ID</b></td><td><b>Target</b></td><td><b>SEN</b></td><td><b>Disadvantaged</b></td></tr></thead>"; result += "<tbody>"; for(var i=0; i < studentArray.length; i++) { result += "<tr>"; result += "<td>"+studentArray[i][1]+"</td>"; result += "<td>"+studentArray[i][0]+"</td>"; result += "<td>"+groupID+"</td>"; result += "<td id=" + studentArray[i][1] + " contenteditable='true' onBlur='saveToDB(1, this.id, this.innerHTML, "+groupID+")'>+ addDataIfPres(1, this.id, data) +</td>"; result += "<td id=" + studentArray[i][1] + " contenteditable='true' onBlur='saveToDB(2, this.id, this.innerHTML, "+groupID+")'></td>"; result += "<td id=" + studentArray[i][1] + " contenteditable='true' onBlur='saveToDB(3, this.id, this.innerHTML, "+groupID+")'></td>"; result += "</tr>"; } result += "</tbody></table>"; dataTable.innerHTML = result; $(document).ready(function() { $('#dataEditTableid').DataTable({ }); }); return result; }); } 函数,并用返回值填充它?

webpack

1 个答案:

答案 0 :(得分:1)

您实际上并没有调用该函数,因为代码仍然是字符串的一部分(缺少引号来表示字符串的结尾)。

尝试一下:

result += "<td id=" + studentArray[i][1] + " contenteditable='true' onBlur='saveToDB(1, this.id, this.innerHTML, "+groupID+")'>" + addDataIfPres(1, this.id, data) + "</td>";