當你確定使用jQuery,包括在您的頁面中添加此行的jQuery庫將此行添加到您的頁面<head>
:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
這裏的隱藏基於頭的硬編碼陣列上的不需要的列代碼:
$(document).ready(function() {
//define which column headers to keep
var headersToKeep = ['---', 'C6', 'C7', 'C13', 'C14'],
colsToKeep = [],
table = $('#gvRealtime'),
ths = table.find('th');
//iterates over headersToKeep retrieving their indexes
$.each(headersToKeep, function(i, v) {
//finds each header and adds its index to the colsToKeep
colsToKeep.push(ths.filter(function() {
return $(this).text() == v;
}).index());
});
//makes a new jQuery object containing only the headers/cells not present in the colsToKeep
$('th, td', '#gvRealtime, #gvTotal').filter(function() {
return $.inArray($(this).index(), colsToKeep) == -1;
}).hide(); //and hides them
});
即使你沒有與JS/jQuery的很多經驗,代碼的情況下,評價您有任何疑問,每個部分的作用。在jQuery庫之後的<head>
中將其添加到<script></script>
標記中。
這裏的JSFiddle。
當然,以後您可以基於複選框或其他切換方法獲取/製作數組。由於您沒有要求提供任何特定接口,因此我將陣列硬編碼。
編輯:很顯然,假設你已經知道的列數,而不是讓他們通過自己的頭文本,你可以用這個更簡單的片斷:
$(document).ready(function() {
var colsToKeep = [0, 6, 7, 13, 14];
$('th, td', '#gvRealtime, #gvTotal').filter(function() {
return $.inArray($(this).index(), colsToKeep) == -1;
}).hide();
});
JSFiddle
它如果你可以更好地指定「提取」的含義,那就很好。你想隱藏除這些之外的所有其他列嗎?或者根據用戶選擇哪一行來顯示這些列的數據?如果您沒有指定您的預期結果,很難回答。更重要的是,你是否願意爲此使用jQuery? – 2012-07-08 09:23:45
@FabrícioMatté感謝您的迴應。是的,我想隱藏除列出的列以外的所有列。我很高興能夠使用jQuery,我只是沒有經驗可以自己把它放在一起 - 但我確信我以前見過這樣的例子,我只是不太明白如何實現它們。 – redditor 2012-07-08 10:32:04
您也可以更新問題以包含詳細描述 - 您知道編輯問題會自動將問題轉移到最新問題的頂部。我可能有點太睏倦從頭atm編寫解決方案。 – 2012-07-08 10:36:07