This page is loaded as a part of the StickyTableHeaders gadget, used by 5,221 users.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/** * Find all header rows in a thead-less table and put them in a <thead> tag. * This only treats a row as a header row if it contains only <th>s (no <td>s) * and if it is preceded entirely by header rows. The algorithm stops when * it encounters the first non-header row. * * After this, it will look at all rows at the bottom for footer rows * And place these in a tfoot using similar rules. * * This function was copied from MediaWiki's jquery.tablesorter module * @param {jQuery} $table object for a <table> */functionemulateTHeadAndFoot($table){var$thead,$tfoot,i,len,$rows=$table.find('> tbody > tr');if(!$table.get(0).tHead){$thead=$('<thead>');// T289817$thead.addClass('mw-sticky-header-element');$rows.each(function(){if($(this).children('td').length){// This row contains a <td>, so it's not a header row// Stop herereturnfalse;}$thead.append(this);});$table.find(' > tbody:first').before($thead);}if(!$table.get(0).tFoot){$tfoot=$('<tfoot>');len=$rows.length;for(i=len-1;i>=0;i--){if($($rows[i]).children('td').length){break;}$tfoot.prepend($($rows[i]));}$table.append($tfoot);}}mw.hook('wikipage.content').add(function($content){// Do this for wikitable, but sortable does it on it's own already$content.find('.wikitable:not(.sortable) ').each(function(i,table){if(table.tBodies&&!table.tHead){// No thead found. Look for rows with <th>s and// move them into a <thead> tag or a <tfoot> tagemulateTHeadAndFoot($(table).addClass('mw-sticky-header'));}});});