我这里有这样的HTML代码:
<div id="overview" class="fadeable">
<table id="exportTable">
<tr>
<td style="width: 500px;"><strong>Col 1</strong></td>
<td style="width: 15px;" class="aligned_td"><strong>Col 2</strong></td>
</tr>
<% call getLocationPercentages(is_nll) %>
</table>
</div>
如您所见,我在第一个asp
之后调用tr
- 函数。它生成的输出是正确的(重新加载网站后。但是,我不想重新加载它。
对于这种情况,我制作了一个小型的JS功能,它可以在Chrome中运行,但不能在IE(7)中运行。 快速说明:我不能支持IE 7。
$(document).on("click", "#updateLocation", function() {
$.ajax({
url: "my-file.asp",
type: "GET",
scriptCharset: "utf-8",
cache: false,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
data: data
});
$('#exportTable').load(location.href + " #exportTable");
}
我阅读了load
的文档,正如我所说,它适用于chrome。然而,IE只是&#34;隐藏&#34;输出。提交后(或按下此按钮(在另一个div中,如果这很重要))表就会消失,但是dom是正确的。 没有CSS规则或什么可以隐藏该表。它会影响其他浏览器。
提交后的DOM也具有正确的值(因此它是#34;重新加载&#34;,但不显示)
想法?熟悉那个问题?
更新
我发现,表格没有正确生成。我的HTML结果如下:
<table id="exportTable">
<table id="exportTable">
correct content here
</table>
</table>
当我将内表移动到另一个上面时,它再次独立,显示是正确的。出于某种原因,它不是重新生成内容,而是添加另一个表。
我试着打开&#34;打开&#34;第二次出现,但没有做到这一点:
var e = $('#exportTable:last');
e.prev().insertAfter(e);
内部表格未被选中,它仅影响外部表格
e.unwrap()
没有做到
我甚至无法在循环中使用each
与其联系。它只是被遗忘。
答案 0 :(得分:1)
我不知道为什么,但是&#34;重装&#34; a table
最终会有2个表具有相同的类+ id&#39; s,其中第1个表只是第2个表的包装器。
我在表格周围包裹了一个<div>
,更改了我的JS以重新加载该div,现在它正在运行。
<强> HTML 强>
<div id="tableWrap">
<table id="exportTable" class="exportTable">
<tr>
<td style="width: 500px;"><strong>col 1</strong></td>
<td style="width: 15px;" class="aligned_td"><strong>col 2</strong></td>
</tr>
<% call getLocationPercentages(is_nll) %>
</table>
</div>
<强> JS 强>
$('#tableWrap').load(location.href + " #exportTable");
答案 1 :(得分:1)
我不确定你这样做的方式是否正确或你真正希望实现的目标。
首先 - 当您创建HTML表格时,您应该创建它:
<table>
<thead>
<tr>
<!-- columns descriptions here -->
</tr>
</thead>
<tbody id="ContentId">
</tbody>
</table>
仅更新 tbody 元素。
其次,在第一次启动应用程序时,您应该使用ASP.NET呈现数据,但是(如果您想将AJAX与jQuery一起使用),更新数据的最简单(但不是最好)的方法是:
<强> JS 强>
$("#UpdateTBody").on("click", function () {
$.ajax({
url : "script.asp",
...,
success: redrawTBody
});
// let's say success callback receives HTML in data argument
function redrawTBody (data) {
// disclaimer : this is simple, but not the best way
// drawing table
$("ContentId").html(data);
}
});
script.asp返回的HTML
<tr> <!-- row 1 --> </tr>
<!-- following rows -->
当涉及到更改网址时,更好的方法是使用 location.assign(location.href +&#39; #ContentId&#39;)或 location.hash =& #34;内容识别&#34;