我正在创建一个表格的第一行来显示标题文本,这将为其下面的一组行赋予意义。
即将举行的活动
然后循环通过模型来构建即将发生的事件的表列表。但是可能存在客户端条件导致没有呈现行,这使得不需要标题行。
如何从“即将发生的事件迭代器”的末尾返回并删除第一行(id =“HeadRow”)?
答案 0 :(得分:2)
如果您不需要标题行,那么您可能不需要该表,那么为什么不隐藏整个表呢?
$("table").hide();
然后,稍后,如果要显示某些内容,则不必重建标题行,只需更新表格并使其可见即可。
答案 1 :(得分:1)
如果不存在行而不是删除标题行,我会采用James Black的方法隐藏整个表格。
如果只有标题行存在,您可以在一切触发后运行快速检查以加载行并隐藏表:
if ($("#myTable tr").length == 1) {
$("#myTable").hide();
}
答案 2 :(得分:0)
$("tr#HeadRow").remove();
// Removes <tr id='HeadRow'><td>foo</td>...</tr> from DOM
答案 3 :(得分:0)
如果您确保关闭该行以使其成为有效的html,则可以执行以下操作:
$("#headrow").remove()
答案 4 :(得分:0)
我不是静态地定义标题行,而是将其与表行的其余部分一起动态输出。像这样,在伪代码中:
int numThings = 0;
for each (thing in dataModel) {
if (thing.wantToDisplay()) {
if (++numThings == 1) {
outputHeaderRow();
}
outputThing(thing);
}
}
顺便说一下,你应该使用&lt; th&gt;而不是&lt; td&gt;。
答案 5 :(得分:0)
通常,我要做的是留下标题行,但插入一行,其中包含一条很好的描述性消息,表明没有任何内容可以显示。
<table>
<thead>
<tr><th>....</th></tr>
<thead>
<tbody>
<% if (Model.Results.Count() > 0) {
foreach (var model in Model.Results) { %>
<tr>
<td><%= Html.Encode( model.Name ) %></td>
...
</tr>
<% }
}
else { %>
<tr><td colspan="N">Query returned no results.</td></tr>
<% } %>
</tbody>
<tfoot>
...
</tfoot>
</table>