我有一个类似的表:
<table id="table_id">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>etc</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1 Data 1</td>
<td>Row 1 Data 2</td>
<td>etc</td>
</tr>
<tr>
<td>Row 2 Data 1</td>
<td>Row 2 Data 2</td>
<td>etc</td>
</tr>
</tbody>
</table>
我想要做的是放置某种图像或链接来隐藏和显示<th>
. 当用户单击隐藏列时,我想将内部文本放在<th>
div 中,当单击 div 时,我希望用户能够单击他们选择的列并将其放回表并将其从 div 中删除。
我得到了数据表插件,在网站上,它有一个隐藏/显示列的示例,但带有外部链接。我能够添加一个链接来隐藏/显示一列,但这是我的问题:
我不知道如何获取被点击的索引或列。我不知道如何使用 jquery 从 div 中删除它。当我单击显示/隐藏时,它会将其放入 div 中,但随后每次单击都会重复,我也可以在 div 中单击它,它会根据当前状态在表格中显示/隐藏。
<script type="text/javascript">
$(document).ready(function() {
$('#datatable').dataTable();
$('.showhide').live('click', function() {
var index = $('#datatable th').index();
fnShowHide(index);
});
});
function fnShowHide(iCol) {
var oTable = $('#datatable').dataTable();
var bVis = oTable.fnSettings().aoColumns[iCol].bVisible;
oTable.fnSetColumnVis(iCol, bVis ? false : true);
var index = $('#datatable td').index();
console.log(index);
$('#columns').append('<a href="#">' + oTable.fnSettings().aoColumns[index].sTitle + '<a/>');
}
</script>
<div id="columns"><h4>Columns</h4></div>
<table id="datatable" class="display">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
我遗漏了一些表格数据。