0

我正在运行这段代码:

$('#storeTable').empty();

$('#storeTable').append("<tr>");
$('#storeTable').append("<td>");
$('#storeTable').append(returnData["1"]["ID"]);
$('#storeTable').append("</td>");
$('#storeTable').append("</tr>");

但是,如果我在一个页面加载中多次运行它,“storeTable”元素会随着每次运行而变得越来越高。我是否遗漏了一些明显的东西,这是 jQuery/JavaScript 的问题,是我的浏览器(Chrome)的错,还是我做错了什么?

代码显然需要改进,我只是想获得页面动态部分的基本实现。

如果您想了解任何其他详细信息,请询问,而不是在不发表评论的情况下投反对票。

storeTable 当然也是一个表。

4

2 回答 2

1

您不能使用.append()附加部分 HTML。. append()只附加整个形成的对象,当它附加它们时,它会将它们附加为目标对象的最后一个子对象。

除此之外,一些浏览器正在选择如何在表格中创建/删除内容。

假设#storeTable<table>标签,您可以指定.html()一次创建一个全新的表:

$("#storeTable").html("<tr><td>" + returnData["1"]["ID"] + "</td></tr>");

工作演示:http: //jsfiddle.net/jfriend00/5BVdX/

于 2012-08-10T20:07:32.007 回答
1
$('#storeTable').empty();

// Will create three rows, one after another
$('#storeTable').append("<tr><td>123</td></tr>");
$('#storeTable').append("<tr><td>456</td></tr>");
$('#storeTable').append("<tr><td>789</td></tr>");

// Will create three rows, each next replaces previous
$('#storeTable').html("<tr><td>123</td></tr>");
$('#storeTable').html("<tr><td>456</td></tr>");
$('#storeTable').html("<tr><td>789</td></tr>");
于 2012-08-10T20:13:12.457 回答