如何使用jQuery删除表中的选定列

时间:2013-11-19 06:39:25

标签: jquery html-table

这里我的要求是选择必须显示的列,其他需要隐藏。所以我在数组中获取未选择的列ID并循环遍历该数组以隐藏内容,但它无法正常工作。请找一个更好的解决方案。

for(var z=0;z<col_compared.length-1;z++)
{               
    $('#My_online_Rep_Table thead tr').find('th:eq('+col_compared[z]+')').hide();
    $('#My_online_Rep_Table tbody tr').find('td:eq('+col_compared[z]+')').hide();
}

col_compared[]是需要隐藏的列ID数组。

3 个答案:

答案 0 :(得分:1)

如果您的for错误,如果只有一个项目,那么循环将不会执行,否则最后一项将无法执行

数组索引从0开始到长度为1,因为您正在检查z < col_compared.length - 1是否要离开数组中的最后一项。

var $body = $('#My_online_Rep_Table tbody tr'),
    $header = $('#My_online_Rep_Table thead tr');
for (var z = 0; z < col_compared.length; z++) {
    $header.find('th:eq(' + col_compared[z] + ')').hide();
    $body.find('td:eq(' + col_compared[z] + ')').hide();
}

答案 1 :(得分:0)

如果你想删除一个特殊元素或div任何dom元素,你可以使用这个方法

$("#div1").destroy();

这是具有id = div1

的删除元素

对于你的情况,你可以在for循环中使用它;

$('#My_online_Rep_Table thead tr').find('th:eq('+col_compared[z]+')').destroy()

答案 2 :(得分:0)

尝试这样的事情

            for(var z=0;z<col_compared.length-1;z++)
            {               
                $('#My_online_Rep_Table thead tr th').eq(col_compared[z]).hide();
                $('#My_online_Rep_Table tbody tr td').eq(col_compared[z]).hide();
            }