2013-09-29 67 views
1

我有這個功能,它負責使表trth崩潰。但事實上,我不想摺疊所有表列(th and tr)。我想因爲我使用$('tr th').click(function()所以所有的trth都崩潰了。有什麼辦法可以排除一些列。我不想移動冠軍。表列崩潰在Javascript中

$('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

感謝

+0

有多種方法可以排除某些元素或元素類型。如果您還可以發佈您正在嘗試使用的HTML,那將會很有幫助。 –

+0

感謝您的評論,請在這裏看到我的代碼http://jsfiddle.net/9QkVd/20/我不想移動標題.. – arok

+0

請將您的html和任何其他相關代碼添加到您的問題;堆棧溢出在這裏是爲了您的問題,整體而言,諸如JS Fiddle這樣的站點是用於示範/支持證據。 –

回答

3

要排除的第一列(標題),您可以使用:

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

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

+1

或者只是'tr th:gt(0)'。 –

+0

是的,':gt(0)'應該可以工作,並且更短。 – techfoobar

+0

非常感謝你的幫助,我可以問我怎樣才能禁用第二個... – arok

2

如果我解釋你的問題c或者,你需要一個能夠摺疊一些頭部但不是全部的函數。看到這個fiddle

所有你需要做的是稍微修改選擇你的。點擊功能:

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

,並添加一個類collapsible到要具備此功能的標頭。改變你的CSS,讓你的標題不是很大,你就完成了!