【发布时间】:2018-03-28 14:58:19
【问题描述】:
当我第一次调用函数loadTable时,信息显示正确,如果我再次调用该函数,信息在HTML页面中显示两次(一个在另一个下面)。
尝试删除for循环之前的信息:
$("#tabla").remove();
$("#tabla").empty();
但信息并没有被删除。
HTML:
<div id="divTabla"><table style="width:100%" border="1" id="tabla"></table></div>
JavaScript:
function loadTable(datos) {
for (var i = 1; i < datos.length; i++) {
d+= '<tr>'+
'<td>'+datos[i].Host+'</td>'+
'<td>'+datos[i].Time+'</td>'+
'<td>'+datos[i].Country+'</td>'+
'<td>'+datos[i].City+'</td>'+
'<td>'+datos[i].Isp+'</td>'+
'<td>'+datos[i].Latitude+'</td>'+
'<td>'+datos[i].Longitude+'</td>'+
'</tr>';
}
$("#tabla").append(d);
}
有谁知道代码有什么问题或如何正确删除信息?
编辑:
当我调用方法时,我会这样做:
function cargarTabla(datos) {
//Using only one at a time
$("#tabla").empty(); //Doesn't work
$("#tabla").remove(); //The table is never displayed
for (var i = 1; i < datos.length; i++) {
d+= '<tr>'+
'<td>'+datos[i].Host+'</td>'+
'<td>'+datos[i].Time+'</td>'+
'<td>'+datos[i].Country+'</td>'+
'<td>'+datos[i].City+'</td>'+
'<td>'+datos[i].Isp+'</td>'+
'<td>'+datos[i].Latitude+'</td>'+
'<td>'+datos[i].Longitude+'</td>'+
'</tr>';
}
$("#tabla").append(d);
}
变量声明d:在loadTable函数所在的同一个js文件中声明,方式如下(是表头):
var d = '<tr>'+'<th>Host</th>'+'<th>Time(ms)</th>'+'<th>Pais</th>'+'<th>Ciudad</th>'+'<th>ISP</th>'+'<th>Latitud</th>'+'<th>Longitud</th>'+'</tr>';
【问题讨论】:
-
你可以使用
$("#tabla").html(d);而不是$("#tabla").append(d); -
您是否尝试过使用
$("#tabla td").empty()? -
@arielnmz 是的,但它不起作用
-
不要使用
$("#tabla").remove(),因为那样会删除表本身。我原以为$("#tabla").empty();会起作用——你能提供一个演示证明它不起作用吗?或者试试$("tabla tr").remove()。 -
我相信这是 stackoverflow.com/a/8053924/3196753 的副本。
$("#tabla > tbody").empty();注意,tbody,而不是tr。
标签: javascript jquery html