我在ajax的return语句中动态创建表。但我只看到表中的一行,尽管调试器将data.length显示为4.如何更正表的重新创建?
toggle()
答案 0 :(得分:2)
using ajax return to recreate a table
...
if (data.length > 0)
{
var $mytablerow = '<table><tbody>';
for (var i = 0; i < data.length; i++)
{
$mytablerow += $(
'<tr>' +
'<td id="td' + data[i].Value + '" >' + data[i].Text + '</td>' +
'</tr>');
}
$mytablerow += '</tbody></table>';
}
var $mylst = $("#Userslist");
$mylst.html($mytablerow);
....
答案 1 :(得分:1)
我认为你应该在循环之外使用变量。例如:
if(data.length > 0) {
var $myTable = '<table><tbody>';
for (var i = 0; i < data.length; i++) {
$myTable += '<tr><td id="td' + data[i].Value + '" >' + data[i].Text + '</td></tr>';
}
$myTable += '</tbody></table>';
}
var $mylst = $("#Userslist");
$mylst.html($myTable);
答案 2 :(得分:1)
您的脚本存在问题。要解决此问题,请使用以下脚本替换:
if (data.length > 0)
{
var $mytablerows = '<table>' + '<tbody>';
for (var i = 0; i < data.length; i++) {
$mytablerows += '<tr>' +
'<td id="td' + data[i].Value + '" >' + data[i].Text + '</td>' +
'</tr>';
}
$mytablerows += '</tbody>' + '</table>';
var $mylst = $("#Userslist");
$mylst.html($mytablerows);
}
答案 3 :(得分:0)
看起来您每次迭代都会创建一个单行表,然后只添加您创建的最后一个表。您需要创建一次表格,然后迭代以创建行。