<table data-role="table" id="statement" data-mode="columntoggle" class="ui-body-d ui-shadow table-stripe ui-responsive" data-column-btn-theme="b" data-column-btn-text="Headings" data-column-popup-theme="a">
<thead>
<tr class="ui-bar-d">
<th data-priority="1">Category</th>
<th data-priority="5">Date</th>
<th data-priority="1">Debit</th>
<th data-priority="1">Credit</th>
<th data-priority="1">Balance</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
下面是我如何用AJAX填充表。
$.each(data, function(index, item) {
$("#statement").append("<tr>"+
"<td>" + item.category + "</td>"+
"<td>" + item.transaction_date + "</td>"+
"<td>" + item.debit + "</td>"+
"<td>" + item.credit + "</td>"+
"<td>" + item.Balance + "</td>"+
"</tr>");
});
代码运行良好,但我遇到的问题是,当我选择要隐藏的列时,只有标题中的th会消失,而tbody中的td不会消失。换句话说,该效果仅发生在头部部分,而不发生在身体部分。tbody部分保持不变,而thead部分该列消失。
我还注意到,当我在不使用AJAX的情况下手动填充表时,当我选择要隐藏的列时,对thead部分和tbody部分都会产生影响。这意味着当我不使用AJAX手动填充表时,它可以很好地工作。我认为问题可能出在DOM上。
有人能帮我解决这个问题吗?
发布于 2016-11-28 20:52:02
首先,将新行追加到表体中,而不是表中;其次,在追加行之后,将表小部件告知
$.each(data, function(index, item) {
$("#statement tbody").append("<tr>"+
"<td>" + item.category + "</td>"+
"<td>" + item.transaction_date + "</td>"+
"<td>" + item.debit + "</td>"+
"<td>" + item.credit + "</td>"+
"<td>" + item.Balance + "</td>"+
"</tr>");
});
$("#statement").table( "rebuild" );
https://stackoverflow.com/questions/40821856
复制相似问题