/*== Actual code ==<source lang="javascript">*/function collapseTable( tableIndex ) { var Button = document.getElementById( 'collapseButton' + tableIndex ); var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table || !Button ) { return false; } var collapseColsOptin = hasCollapsibleCol( tableIndex ); // new var collapseColsOptout = hasNoncollapsibleCol( tableIndex ); // new var Cols = Table.rows[0].cells; // new var CollapseCols = new Array(Cols.length); // new; has to be larger if there are colspans if ( collapseColsOptin || collapseColsOptout ) {// new // @colspan currently not handled // the following two if-for-if constructs could be combined if ( collapseColsOptin ) { for ( var i = 0; i < Cols.length; i++ ) { if ( CollapseCols[i] == null || !hasClass( Cols[i], 'collapsible' ) ) { CollapseCols[i] = !collapseColsOptin; } else { CollapseCols[i] = collapseColsOptin; } } } // 'nocollapse' takes precedence over 'collapsible', i.e. // default columns are not collapsible when both types exist if ( collapseColsOptout ) { for ( var i = 0; i < Cols.length; i++ ) { if ( CollapseCols[i] == null || !hasClass( Cols[i], 'nocollapse' ) ) { CollapseCols[i] = collapseColsOptout; } else { CollapseCols[i] = !collapseColsOptout; } } } // column with first |th| should be excluded, because it holds the show/hide button var Header = Table.rows[0].getElementsByTagName( 'th' )[0]; CollapseCols[Header.cellIndex] = false;// cellIndex doesn’t handle @colspan } var Rows = Table.rows; // insert check for @colspan here, change CollapseCols accordingly if ( Button.firstChild.data == collapseCaption ) {// hide if ( collapseColsOptin || collapseColsOptout ) {// new for ( var i = 0; i < Rows.length; i++ ) { var Cells = Rows[i].cells; for ( var j = 0; j < CollapseCols.length; j++) { // if we used Cells.length the handling of rows with empty cells at the end should improve // this would be a problem if the header row had empty cells at the end // we could also do CollapseCols.length-Cells.length times Rows[i].insertCell(-1) if ( CollapseCols[j] ) { Cells[j].style.display = 'none';// needs to take @colspan into account } } } } var collapseRowsOptin = hasCollapsibleRow( tableIndex );// new // @rowspan currently not handled for ( var i = 1; i < Rows.length; i++ ) { if ( collapseRowsOptin ) {// new if ( hasClass( Rows[i], 'collapsible' ) ) { Rows[i].style.display = 'none'; } } else if ( !collapseColsOptin && !collapseColsOptout ) { if ( !hasClass( Rows[i], 'nocollapse' ) && !( hasClass( Rows[i], 'sortbottom' ) && !hasClass( Rows[i], 'collapsible' ) ) ) { // new condition to exclude certain rows from collapsing Rows[i].style.display = 'none'; } } } Button.firstChild.data = expandCaption; } else {// show for ( var i = 0; i < Rows.length; i++ ) { if ( collapseColsOptin || collapseColsOptout ) {// new var Cells = Rows[i].cells; for ( var j = 0; j < CollapseCols.length; j++) { if ( CollapseCols[j] ) { Cells[j].style.display = Rows[0].style.display; } } } Rows[i].style.display = Rows[0].style.display; } Button.firstChild.data = collapseCaption; }}/* new function to check whether the collapsible table has * any column with the class 'collapsible' */function hasCollapsibleCol( tableIndex ) { var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table ) { return false; } var Cols = Table.rows[0].cells; for ( var i = 0; i < Cols.length; i++ ) { if ( hasClass( Cols[i], 'collapsible' ) ) { return true; } } return false;}/* new function to check whether the collapsible table has * any column with the class 'nocollapse' */function hasNoncollapsibleCol( tableIndex ) { var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table ) { return false; } var Cols = Table.rows[0].cells; for ( var i = 0; i < Cols.length; i++ ) { if ( hasClass( Cols[i], 'nocollapse' ) ) { return true; } } return false;}/* new function to check whether the collapsible table has * any row (except the header) with the class 'collapsible' */function hasCollapsibleRow( tableIndex ) { var Table = document.getElementById( 'collapsibleTable' + tableIndex ); if ( !Table ) { return false; } var Rows = Table.rows; for ( var i = 1; i < Rows.length; i++ ) { if ( hasClass( Rows[i], 'collapsible' ) ) { return true; } } return false;}// </source>
🔥 Top keywords: Main PageSpecial:SearchPage 3Wikipedia:Featured picturesHouse of the DragonUEFA Euro 2024Bryson DeChambeauJuneteenthInside Out 2Eid al-AdhaCleopatraDeaths in 2024Merrily We Roll Along (musical)Jonathan GroffJude Bellingham.xxx77th Tony AwardsBridgertonGary PlauchéKylian MbappéDaniel RadcliffeUEFA European Championship2024 ICC Men's T20 World CupUnit 731The Boys (TV series)Rory McIlroyN'Golo KantéUEFA Euro 2020YouTubeRomelu LukakuOpinion polling for the 2024 United Kingdom general electionThe Boys season 4Romania national football teamNicola CoughlanStereophonic (play)Gene WilderErin DarkeAntoine GriezmannProject 2025