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

时间:2015-06-08 12:40:19

标签: javascript jquery ajax

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

toggle()

4 个答案:

答案 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)

看起来您每次迭代都会创建一个单行表,然后只添加您创建的最后一个表。您需要创建一次表格,然后迭代以创建行。