表列在Javascript中折叠

时间:2013-09-29 09:50:38

标签: javascript jquery html-table

我有这个函数负责使表trth崩溃。但事实上我不想折叠所有表格列(th and tr)。我认为因为我使用$('tr th').click(function()所以trth都崩溃了。有什么方法可以排除一些列吗?我不想移动标题..

$('tr th').click(function() {

    var index = (this.cellIndex + 1);
    var cells = $('table tr > :nth-child(' + index + ')');
    cells.toggleClass('collapsed');

    if ($(this).hasClass('collapsed')) {
        $(this).find('span').html('<b>+</b>');
    }
    else {
        $(this).find('span').html('<b>-</b>');
    }

    if ($('table tr > th:not(.collapsed)').length)
        $('table').removeClass('collapsed');
    else
        $('table').addClass('collapsed');
});
}); 

这是我的代码:jsfiddle.net/9QkVd/20

2 个答案:

答案 0 :(得分:3)

要排除第一列(标题),您可以使用:

$('tr th:gt(0)').click(function() {
    ...
});

更新了小提琴:http://jsfiddle.net/9QkVd/22/

答案 1 :(得分:2)

如果我正确地解释您的问题,您需要一个折叠某些标题但不是全部的函数。见fiddle

您需要做的就是稍微修改.click函数的选择器:

$('tr th.collapse').click(function() { ... }

并在要使用此功能的标头上添加一个类collapsible。稍微改变你的CSS,这样你的标题就不那么大了,你已经完成了!