如何在javascript中动态重新创建表

如何在javascript中动态重新创建表,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在ajax的return语句中动态创建一个表。但我只看到表中的一行,尽管调试器将data.length显示为4。如何更正表格的重新创建 // using ajax return to recreate a table // ... if (data.length > 0) { for (var i = 0; i < data.length; i++) { var $mytablerow = $( '<table>' +

我在ajax的return语句中动态创建一个表。但我只看到表中的一行,尽管调试器将data.length显示为4。如何更正表格的重新创建

// using ajax return to recreate a table
// ...

if (data.length > 0) {
    for (var i = 0; i < data.length; i++) {
        var $mytablerow = $(
            '<table>' +
                '<tbody>' +
                    '<tr>' +
                        '<td id="td' + data[i].Value + '" >' +
                            data[i].Text +
                        '</td>' +
                    '</tr>' +
                '</tbody>' +
            '</table>'
        );
    }
}

var $mylst = $("#Userslist");
$mylst.html($mytablerow);

// ....
//使用ajax返回重新创建表
// ...
如果(data.length>0){
对于(变量i=0;i
看起来您在每次迭代中创建一个单行表,然后只添加您创建的最后一个表。您需要创建一次表内容,然后迭代创建行。

使用ajax return重新创建表
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);
....
... 如果(data.length>0) { var$mytablerow=''; 对于(变量i=0;i
我认为应该在循环外使用变量。例如:

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);
if(data.length>0){
var$myTable='';
对于(变量i=0;i
您的脚本有问题。要解决此问题,请使用此脚本替换:

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);
}
if(data.length>0)
{
变量$mytablerows=''+'';
对于(变量i=0;i
您将重新定义$myTableRow 4次,因此仅使用for循环后的最后一个值。因为您在循环内写入相同的变量
$myTableRow
。如果我更改实现,则结果$mylst=“[object object object][object][object][object][object object]”,而不是数据[I]的内容。值或数据[i] .Textok我不得不删除“$mytablerow=$('tr“到“$mytablerow='tr”),现在它工作正常了。谢谢