New England Patriots - 2021 Team Leaders (2023)

Stories, Photos, Videos, Podcasts, and Publications featuring New England Patriots 2021 Season

F i l t e r & S o r t Filter & Sort

'+tableLegend; } else { return '

Showing ' + total + ' of ' + max + ' records.
Change filters or adjust season slider to modify results.
Click on column headings to sort table.

'+tableLegend;} } , fnFooterCallback: function ( nRow, aaData, iStart, iEnd, aiDisplay ) { //cant get actual 2+ row footers to work below or elsewhere, so just using
on footer results var api = this.api(); $('tr:eq(1) th:eq(3)', api.table().footer()).html((34)); $('tr:eq(1) th:eq(4)', api.table().footer()).html((53)); $('tr:eq(1) th:eq(5)', api.table().footer()).html((12)); // var secondRow = $(nRow).next()[0]; // var nCells = secondRow.getElementsByTagName('th'); // nCells[1].innerHTML = 55; // nCells[2].innerHTML = 47.01; // console.log(nCells); }, // ========================================================== // Functions that automatically calculate sum/average/etc on footer of each column // // each column's class attribute is tagged as to what type of subtotal should be calculated // ========================================================== drawCallback: function () { //sums the footer values var api = this.api(); var ct=0; //index counter var rowCt=0; //count number of rows in particular column var seaCt=0; //number of seasons visible //counts the rows in first column and shows as ## Totals api.columns('.tot', { page: 'current' }).every(function () { var sum = this .data() .reduce(function (a, b) { if (b!='') { ct++; } return ''; }, 0); seaCt = ct; ct=0; //console.log('=='+sum+'/'+ct+'/'+seaCt); // Update footer of first column if (seaCt>1 && !0) { //season totals and average $(this.footer()).html(seaCt+"
" ); }else if (seaCt>1 ) { $(this.footer()).html(seaCt+" " ); }else{ $(this.footer()).html(seaCt+" " ); } }); // ============================================================ // Calculate Averages on columns that are already averages by grabbing data // from other column Totals // e.g. FG%, Batting Average, SLG, etc // ============================================================ // call from each page , for example: // var colclass = '.3Ppct-calc' // var numerFld = '3Ptot:name' // var denomFld = '3PAtot:name' // var sigfig = 1 // var decPct = 100 // var strip0 = true //strip leading "0." from results 0.500 -> .500 // var numerVal = parseFloat(api.column( numerFld, {page:'current'} ).data().sum(0)) // var denomVal = parseFloat(api.column( denomFld, {page:'current'} ).data().sum(0)) // customFooterVal(); function customFooterVal() { // some columns may have null stats, so cant include those in averages. // This javascript technique iterates one column at a time // So it becomes problematic to count rows in a _different_ column to get accurate averages/per-game totals. // so instead, we'll just get a ratio of the rows with/without null in _current_ column // and then multiply subtotal by that ratio to get a best estimate. // Mostly accurate unless game counts vary from season to season. // var numerCt = parseFloat(api.column( numerFld, {page:'current'} ).data().filter( function ( value, index ) {return value !='' ? true : false; } ).count()+0.00001); //counts non-nulls var denomCt = parseFloat(api.column( denomFld, {page:'current'} ).data().filter( function ( value, index ) {return value !='' ? true : false; } ).count()); //counts non=nulls var subave = ( (denomCt / numerCt) * numerVal / ( denomVal + 0.00001 ) * decPct ).toFixed(sigfig); //create footer if (numerCt<1) { subave='-'; //no stats in column }else if (strip0) { subave=subave.replace(/^(0\.)/,'.') ; //strip leading "0." from results 0.500 -> .500 } if (seaCt>1 && !0) { subave = subave + '
' + subave } jQuery( api.table().column( colclass ).footer() ).html( ( subave ) ); } // console.log('---------') // console.log ('1:'+ parseFloat(api.column( '3Ptot:name', {page:'current'} ).data().filter( // function ( value, index ) {return value !='' ? true : false; } ).count())) // console.log ('2:'+ parseFloat(api.column( '3PAtot:name', {page:'current'} ).data().filter( // function ( value, index ) {return value !='' ? true : false; } ).count())) // the sigfig and 'leading 0' are stored in database also creates // a custom class. for use in javascript calcuations of dynamic footer calculations // not currently used // ========================= // footer with sum and average // ========================= api.columns('.sumave00', { page: 'current' }).every(function () { var strip0 =0; var sigfig =0; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); api.columns('.sumave01', { page: 'current' }).every(function () { var strip0 =0; var sigfig =1; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); api.columns('.sumave02', { page: 'current' }).every(function () { var strip0 =0; var sigfig =2; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); api.columns('.sumave03', { page: 'current' }).every(function () { var strip0 =0; var sigfig =3; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); api.columns('.sumave11', { page: 'current' }).every(function () { var strip0 =1; var sigfig =1; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); api.columns('.sumave12', { page: 'current' }).every(function () { var strip0 =1; var sigfig =2; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); api.columns('.sumave13', { page: 'current' }).every(function () { var strip0 =1; var sigfig =3; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); // ========================= // footer with two averages // ========================= api.columns('.aveave00', { page: 'current' }).every(function () { var strip0 =0; var sigfig =0; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); api.columns('.aveave01', { page: 'current' }).every(function () { var strip0 =0; var sigfig =1; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); api.columns('.aveave02', { page: 'current' }).every(function () { var strip0 =0; var sigfig =2; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); api.columns('.aveave03', { page: 'current' }).every(function () { var strip0 =0; var sigfig =3; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); api.columns('.aveave11', { page: 'current' }).every(function () { var strip0 =1; var sigfig =1; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); api.columns('.aveave12', { page: 'current' }).every(function () { var strip0 =1; var sigfig =2; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); api.columns('.aveave13', { page: 'current' }).every(function () { var strip0 =1; var sigfig =3; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); //these two should be obsolete, but keeping them here for legacy purposes api.columns('.aveave', { page: 'current' }).every(function () { var strip0 =1; var sigfig =1; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } $(this.footer()).html( sumAlt + ave ); }); //these two should be obsolete, but keeping them here for legacy purposes api.columns('.sumave', { page: 'current' }).every(function () { var strip0 =1; var sigfig =1; var sum = this .data() .reduce(function (a, b) { var x = parseFloat($(''+a+'').text()) || 0; //encase it so html is always stripped var y = parseFloat($(''+b+'').text()) || 0; if (y!='') { ct++; } return x + y; }, 0); var rowCt = ct; ct=0; // Update footer if (rowCt==0) { sum='-'; sumAlt='-'; }else{ sum = parseFloat(sum).toFixed(4) sumAlt = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) if (strip0==1){ sumAlt = sumAlt.replace(/^(0\.)/,'.'); } } if (rowCt==0 && seaCt>1 && !0*1) { ave = '
-'; }else if (seaCt>1 && !0*1) { ave = parseFloat(sum/(rowCt+.000001)).toFixed(sigfig) ; if (strip0==1){ ave = ave.replace(/^(0\.)/,'.'); } ave = '
'+ ave ; }else{ ave = ''; //dont show second row when there's only 1 season } sum = parseInt(sum); $(this.footer()).html(sum + ave ); }); //dont really use these anymore because two-rowed footer code above places average after the sum //other columns are autocalculated based for average or sum based on class tag // api.columns('.sumonly', { page: 'current' }).every(function (rowIdx, tableLoop, rowLoop) { // var sum = this // .data() // .reduce(function (a, b) { // var x = parseFloat(a) || 0; // var y = parseFloat(b) || 0; // return x + y; // }, 0); // //console.log(sum); // // Update footer // $(this.footer()).html(parseFloat(sum).toFixed(0) ); // }); // api.columns('.avg3', { page: 'current' }).every(function () { // var sum = this // .data() // .reduce(function (a, b) { // var x = parseFloat(a) || 0; // var y = parseFloat(b) || 0; // if (b!='') { // ct++; // } // return x + y; // }, 0); // var rowCt = ct; // ct=0; // //console.log('=='+sum+'/'+ct+'/'+rowCt); // // Update footer // $(this.footer()).html( parseFloat(sum/(rowCt+.000001)).toFixed(3).replace('0.','.') ); // }); //api.fixedHeader.adjust(); }, buttons: [ // ========================================================== // Build VIEWS dropdown menu // ========================================================== // // ========================================================== // Build SPLITS dropdown menu // ========================================================== // { // extend: 'collection', // text: " Splits", // fade: 0, // autoClose: true, // buttons: // [ // // ] // }, // ========================================================== // Build COLUMN visibility dropdown menu // ========================================================== // checkboxes at // https://infra.clarin.eu/content/libs/DataTables-1.10.4/extensions/ColVis/examples/text.html // { extend: 'colvis', fade: 0, className: 'btn-group-child pull-left', //collectionLayout: 'fixed two-column', columns: ":not(.notInMenu)", //':gt(0)', titleAttr: 'Hide/Show Columns', text: "Columns" }, // ========================================================== // Build EXPORT/SHARE dropdown menu // ========================================================== // { extend: "collection", text: "Share", fade: 0, titleAttr: 'Export Table to another location', className: 'btn-group-child', autoClose: true, buttons: [ { extend: 'copy', className: 'pullLeft', messageTop: 'RetroSeasons Data', messageBottom: "https://www.retroseasons.com/teams/new-england-patriots/2021/leaders/receiving-yards/", header: true, footer: true, text: "Copy/Paste", key: { key: 'c', ctrlKey: true, }, exportOptions: { columns: ':visible' }, }, { extend: 'csv', className: 'pullLeft', title: "retroseasons-teams-new-england-patriots-2021-leaders-receiving-yards-export", messageBottom: "https://www.retroseasons.com/teams/new-england-patriots/2021/leaders/receiving-yards/", messageTop: "This data was exported from https://www.retroseasons.com", text: "Download", titleAttr: 'Download Stats', header: true, footer: true, key: { key: 'x', ctrlKey: true, }, exportOptions: { columns: ':visible' }, }, // { // text: " Facebook Share", // titleAttr: 'Share Page', // }, // { // text: " Share Page", // titleAttr: 'Share Page', // }, // { // text: " Embed Table", // titleAttr: 'Embed Table', // }, ] }, // ========================================================== // Build FILTERS dropdown menu // ========================================================== // { extend: "collection", text: "Filter", autoClose: true, titleAttr: 'Filter statistics to show a subset of data', className: 'btn-group-child', fade: 0, buttons: [ // ========================================================== // FILTER paramater variables are set on each page depending on data // ========================================================== ] }, //end of collection dropdown menu ], }); //redraws header/footer on colviz changes so that its correctly formatted jQuery('#mainTable').on( 'column-visibility.dt', function ( e, settings, column, state ) { //console.log( 'Column '+ column +' has changed to '+ (state ? 'visible' : 'hidden') ); table.fixedHeader.adjust(); } ); jQuery('#mainTable').show(); // ================================================================= // draw table filtering fields to allow filtering of ranges // (this technique is then piggybacked by the range slider) // ================================================================= jQuery.fn.dataTable.ext.search.push( function( settings, data, dataIndex ) { var min = parseInt( jQuery('#slider-min').val(), 10 ); var max = parseInt( jQuery('#slider-max').val(), 10 ); var age = parseFloat( data[0] ) || 0; // use data for the age column if ( ( isNaN( min ) && isNaN( max ) ) || ( isNaN( min ) && age <= max ) || ( min <= age && isNaN( max ) ) || ( min <= age && age <= max ) ) { return true; } return false; } ); // ================================================================= // Event listener to the two range filtering inputs to redraw on input. // don't really need this anymore, since they're hidden and // i'm triggering redraw on slider but leaving it here for legacy // ================================================================= jQuery('#slider-min, #slider-max').change( function() { table.draw(); } ); // ================================================================= // Avtandil mod: throttle slide change events // ================================================================= var throttle_inst = null; var throttle = function( wait, func, options) { var context, args, result; var timeout = null; var previous = 0; if (!options) options = {}; var later = function() { previous = options.leading === false ? 0 : Date.now(); timeout = null; result = func.apply(context, args); if (!timeout) context = args = null; }; return function() { var now = Date.now(); if (!previous && options.leading === false) previous = now; var remaining = wait - (now - previous); context = this; args = arguments; if (remaining <= 0 || remaining > wait) { if (timeout) { clearTimeout(timeout); timeout = null; } previous = now; result = func.apply(context, args); if (!timeout) context = args = null; } else if (!timeout && options.trailing !== false) { timeout = setTimeout(later, remaining); } return result; }; } var update_model_throttle = function() { if (null === throttle_inst) { throttle_inst = throttle(500, function(){ demo._handleSliderChange(); }); } throttle_inst(); } // ================================================================= // Avtandil End: throttle slide change events // ================================================================= // ================================================================= // set config parameters for slider range // http://ionden.com/a/plugins/ion.rangeSlider/demo_interactions.html // ================================================================= var $range = jQuery("#slider-range"); jQuery(function () { $range.ionRangeSlider({ type: 'double', step: 1, min: 1960, max: 2021, from: 2021, to: 2021, from_min: 2021, to_min: 2021, from_max: 2021, to_max: 2021, hide_min_max: false, keyboard: false, from_shadow:true, grid: false, skin: "round", // skin: "big", force_edges: true, drag_interval: true, prettify_enabled: false ,onChange: function () { update_model_throttle(); } }); }); $('div.dataTables_filter input').addClass('focus:border-blue-500 focus:border-2'); // <-- add this line $('div.dataTables_filter input').addClass('rounded rounded-lg border border-gray-400'); // <-- add this line $('div.dataTables_filter input').addClass('text-black'); // <-- add this line // ================================================================= // change min/max input fields and redraw table when slider changes // ================================================================= $range.on("change", function () { var $this = $(this), value = $this.prop("value").split(";"); //console.log(value[0] + " - " + value[1]); document.getElementById('slider-min').value=value[0]; document.getElementById('slider-max').value=value[1]; table.draw(); }); //fixedHeader.adjust(); //breaks wordpress table.draw(); $('#crumbCell').html(''); } );

F i l t e r

S o r t

S e a r c h

0 matches

FAQs

New England Patriots - 2021 Team Leaders? ›

New England Patriots cornerback J.C. Jackson has been voted as the No.

Who is the best player on the Patriots 2021? ›

New England Patriots cornerback J.C. Jackson has been voted as the No.

Who is the top player for the Patriots? ›

Who is the leader of the Patriots? ›

Jonathan Kraft is the president of the Kraft Group, the private holding company of the Kraft family's varied business interests. He is also the president of the six-time Super Bowl Champion New England Patriots.

Who are the 8 captains in the NFL? ›

They are quarterback Justin Herbert, running back Austin Ekeler, wide receiver Keenan Allen, center Corey Linsley, safety Derwin James, edge rushers Khalil Mack and Joey Bosa, and defensive tackle Sebastian Joseph-Day.

Who is the special team captain for the Patriots? ›

A few of our favorite photos of special teams captain Matthew Slater from the 2022 season. The three-time Super Bowl champion has played in 25 postseason games, tied for the ninth-most in NFL history. "It is a great honor and blessing to return to the Patriots for my 16th season," said Slater.

Who is the quarterback Patriots goat? ›

Mahomes ran away with the honor, earning 48 of 50 first-place votes. The other two went to Eagles quarterback Jalen Hurts and Buffalo Bills quarterback Josh Allen.

Who is the best quarterback on the Patriots? ›

Having been the starting quarterback 20 seasons, Tom Brady holds the record for the most starts and wins with the Patriots. He is also the franchise leader in attempts, completions, total yards gained, and passing touchdowns, although Jimmy Garoppolo has the best pass completion percentage.

Who is the Patriots number one quarterback? ›

2021. Following the preseason, Jones was named the Patriots' starter for 2021. Jones beat out incumbent starting quarterback Cam Newton, who was released during the final roster cuts. He became New England's first rookie quarterback to start a season opener since Bledsoe in 1993.

What is the net worth of Tom Brady? ›

That endorsement total would put Brady's net worth around $512 million if you combine his on- and off-field earnings.

Who is the number one WR for Patriots? ›

The Patriots Hall of Famer still leads the franchise with 10,352 career receiving yards. This was a no brainer for one reason. No wide receiver has contributed to the Patriots' success more than Julian Edelman.

Who is Rob Gronkowski's wife? ›

^ "Rob Gronkowski, Camille Kostek Donate Masks To Foxboro Fire Department". CBS Boston. May 23, 2020. Retrieved May 26, 2020.

Who are the 12 Patriots? ›

Founding members
  • David Oh (Zero; leader)
  • Adamska (Ocelot; informant)
  • John (Big Boss; icon)
  • Donald Anderson (Sigint; technician, leader of Cipher after Zero's incapacitation and Skull Face's death)
  • Dr. Clark (Para-Medic; scientist)
  • EVA (spy)

Who were 4 famous Patriots? ›

Famous patriots included George Washington, Thomas Jefferson, Benjamin Franklin, and Ethan Allen. Patrick Henry's famous Patriot speech at the Virginia Convention in 1775 summed up their beliefs when he said, "Give me liberty, or give me death!"

Who are the patriots enemy? ›

Colts–Patriots rivalry
First meetingOctober 4, 1970 Harvard Stadium Boston Colts 14, Patriots 6
Latest meetingNovember 6, 2022 Patriots 26, Colts 3
Next meetingNovember 12, 2023 (in Frankfurt)
Statistics
Meetings total82 meetings
7 more rows

What does C mean on NFL jerseys? ›

Players who have been named a team captain typically wear a "C" patch on their jerseys. There is a standard design used by all teams participating in the captaincy program. The patches are in team colors and are worn on the front left or right breast (depending on other patches, etc.

What teams are leaders in the NFL? ›

REGULAR SEASON
1Chiefs66.8
2Buccaneers66.4
3Chargers68.2
4Dolphins63.0
5Bengals68.5
24 more rows

Which NFL team has the most star players? ›

10 NFL teams with the most Hall of Famers
  • Las Vegas Raiders (17)
  • Dallas Cowboys (19)
  • Los Angeles Rams (19)
  • Washington Football Team (20)
  • New York Giants (21)
  • Pittsburgh Steelers (24)
  • Green Bay Packers (26)
  • Chicago Bears (30)
Nov 8, 2022

Who is the guy in the Patriots logo? ›

Pat Patriot, commonly referred to as "Pat The Patriot," is the mascot of the New England Patriots, a National Football League (NFL) franchise based in Foxborough, Massachusetts. He is depicted as a soldier of the American Revolution.

Who is the starter for the Patriots? ›

New England Patriots Depth Chart
Starter2nd3rd
JuJu Smith-SchusterKendrick BourneRaleigh Webb
DeVante ParkerKayshon BoutteTre Nixon
Tyquan ThorntonDemario DouglasMatthew Slater
Hunter HenryMike GesickiMatt Sokol
7 more rows

Who drafted Tom Brady to the Patriots? ›

Image of Who drafted Tom Brady to the Patriots?
The New England Patriots are a professional American football team based in the Greater Boston area. The Patriots compete in the National Football League as a member club of the league's American Football Conference East division.
Wikipedia

Who said Tom Brady is not the goat? ›

Tom Brady isn't the GOAT: "Joe Montana is my man", says Giants great Lawrence Taylor. He assures that Brady had rules that favored him. Since before he retired for the second time, Tom Brady has been considered the greatest quarterback of all time, and no one can match his marks in a 23-year career.

Who is Tom Brady called the goat? ›

The never-ending debate on who is the GOAT (common parlance for “greatest of all time”) NFL quarterback has been settled — at least for now. Seven-time Super Bowl winner Tom Brady, who announced his retirement last week, holds that distinction, according to U.S. adults and NFL fans in a new Morning Consult survey.

Who is the goat Rodgers Brady? ›

Brady leads the head-to-head 3-2 and holds a number of records inclurding most career QB wins, pass completions, touchdown passes and passing yards, but Rodgers has won one more NFL MVP award. But it's jewellery that Brady is really clear of his rival.

Who is a better QB than Brady? ›

But who's first? Of all quarterbacks to start at least 100 regular-season games in the Super Bowl Era, the only QB with a higher cover percentage than Brady is Joe Montana, who went 101-63 ATS in regular-season games for his career (61.6%).

Who was Tom Brady's favorite receiver in New England? ›

Randy Moss, 39 touchdowns

Moss was one of the best receivers in NFL history, but he had a career resurgence when he ended up in New England, and he showed the world that Brady was a lot more than a game manager. From 2000 to 2006, Brady never threw more than 28 touchdowns.

Who is the best Patriots running back of all time? ›

Sam Cunningham

Who has scored the most touchdowns for the Patriots? ›

The New England Patriots player with the most touchdowns scored in franchise history was Rob Gronkowski with 80 touchdowns as of September 2022. This was followed by Stanley Morgan and Ben Coates with 68 and 50 touchdowns respectively.

Was Tom Brady ever in the Patriots? ›

Thomas Edward Patrick Brady Jr. (born August 3, 1977) is an American former football quarterback who played in the National Football League (NFL) for 23 seasons. He spent his first 20 seasons with the New England Patriots and was a central contributor to the franchise's dynasty from 2001 to 2019.

Who is the number one NFL QB right now? ›

Quarterback is the most important position in football, and it is arguably the most important position in any sport. Kansas City's Patrick Mahomes just won the 2022 NFL MVP Award and took home the Lombardi Trophy.

Who is the richest NFL player? ›

The deal makes Jackson the highest-paid player in NFL history in terms of average annual value ($52 million), just edging out Philadelphia Eagles star Jalen Hurts ($51 million) Green Bay Packers quarterback Aaron Rodgers ($50.27 million).

Who is the richest football player? ›

Richest NFL (National Football League) Players, 2023
RankNFL PlayerNet Worth
1Roger Staubach$600 Million
2John Madden$200 Million
3Peyton Manning$200 Million
4Tom Brady$180 Million
96 more rows
Mar 6, 2023

Who is the highest-paid NFL player? ›

Lamar Jackson finally has his deal with the Baltimore Ravens. The Ravens and Jackson have agreed to terms on a five-year $260 million contract making him the highest-paid player in the NFL averaging $52 million-per-year.

What does Tom Brady make in a year? ›

2021-2022. Tom Brady signed a 2 year, $50,000,000 contract with the Tampa Bay Buccaneers, including $50,000,000 guaranteed, and an average annual salary of $25,000,000.

How much is Rob Gronkowski's house worth? ›

Inside Rob Gronkowski's $4.5 million home, with photos.

How much does Gronkowski make a year? ›

He signed his second contract with Tampa Bay Buccaneers in 2020. He has not played for this team for a long time and ended his deal with this team in the year 2021.
...
Rob Gronkowski Net Worth.
NameRob Gronkowski
ProfessionAmerican football tight end
Monthly Income And Salary$0.2 Million +
Yearly Income And Salary$4 Million +
Last Updated2023
1 more row
Apr 24, 2023

Who is number 69 on the Patriots? ›

Devin Cole Strange

Why did the Patriots change their name? ›

In 1971, the Patriots moved into a new stadium in suburban Foxborough, Massachusetts, built on land granted by the Bay State Raceway. The team was renamed the New England Patriots on March 22, 1971, to reflect its new location. The original choice, Bay State Patriots was rejected by the NFL.

Who is number 27 on the Patriots? ›

Myles Bryant

Who were some black Patriots? ›

7 Black Heroes of the American Revolution
  • Crispus Attucks, Martyr. Bettmann Archive/Getty Images. ...
  • Salem Poor, Patriot Soldier. DBI Studio/Alamy. ...
  • The First Rhode Island Regiment, Integrated Revolutionary Force. ...
  • Phyllis Wheatley, Patriot Poet. ...
  • Peter Salem, Colonial Hero. ...
  • James Armistead Lafayette, the Double Agent.
Feb 12, 2020

Who wore 60 for Patriots? ›

David Andrews (American football)
No. 60 – New England Patriots
New England Patriots (2015–present)
Roster status:Active
Career highlights and awards
2× Super Bowl champion (LI, LIII) New England Patriots All-2010s Team Second-team All-SEC (2014)
18 more rows

Who wore 99 for the Patriots? ›

99. With his previous two jersey numbers with the team all taken, recently re-signed New England Patriots linebacker Jamie Collins has decided to go for the highest one available.

What was the worst Patriots team ever? ›

The Patriots instead finished the season with a record of 1–15, the worst record in franchise history. They finished last in the AFC East Division and dead last in the NFL.
...
1990 New England Patriots season
Head coachRod Rust
Home fieldFoxboro Stadium
Results
Record1–15
7 more rows

What is the best rivalry in the NFL? ›

The Colts–Patriots rivalry is one of the NFL's most famous. The two teams combined for eight Super Bowl victories (six by the Patriots and two for the Colts) and thirteen AFC Championships since 1970, while both are noted for their organizational excellence.

What states support the Patriots? ›

The Patriots are one of the few franchise that represent an entire geographical region. New England is generally associated with six states in the northeastern portion of the country: Vermont, Rhode Island, New Hampshire, Connecticut, Massachusetts and Maine.

Do Patriots have captains patches? ›

Pittsburgh and New England have never used the patch during the respective lengthy tenures of their head coaches Mike Tomlin and Bill Belichick, although they have named permanent captains. To date, these two teams and the Ravens have never worn the patch. Other teams who do not use the patch designate captains weekly.

Was Tom Brady the Patriots captain? ›

Tom Brady was drafted by the New England Patriots in the sixth round (199th overall) of the 2000 NFL Draft. Brady is an 18-time Patriots team captain, elected to the position by his teammates every season since 2002.

Is Tom Brady the captain of his team? ›

Buccaneer players voted for their 2022 team captains on Monday and came back with four returning leaders plus Vea in his first time in the role. The captains will be Tom Brady and wide receiver Mike Evans on offense, plus Vea and linebackers Lavonte David and Devin White on defense.

How many captains are on each NFL team? ›

There are up to six captains on an NFL team.

However, this rule is not always enforced, and some teams have named seven captains. Because of injuries, large rosters, and multiple squads, it is advantageous to have multiple captains on a football team.

Why are the Patriot coaches wearing flags on their shirts? ›

According to the NFL, the flags are meant to represent a player's “nationality of cultural heritage.” Despite having a significantly smaller share of international players than any of the other major sports leagues, the NFL still boasts a history of players with international ties.

Why do the Patriots have Croatia patches? ›

Belichick explained that his mother, Jeannette, was of English descent while his father, Steve, was Croatian. Belichick said that it meant a lot to him to put that symbol out there for those “that have that little bond” of Croatian heritage, such as Seahawks coach Pete Carroll and Alabama coach Nick Saban.

Who was the fan who gave Tom Brady? ›

- Byron Kennedy has finally received his "compensation" from Tom Brady and the Buccaneers for returning the quarterback's 600th touchdown ball. The St. Pete doctor went from fan to infamous after handing back the historic ball, valued by some experts to be worth $500,000.

Who replaced Tom Brady with the Patriots? ›

That's the situation Cam Newton finds himself in after signing a one-year "prove it" deal with the New England Patriots in June. He'll officially replace Tom Brady as the Pats' starting quarterback Sunday vs.

Did Brady ever thank the Patriots? ›

But Brady's retirement announcement came with a surprising and uncharacteristic unforced error. In his statements on social media, which included nine pages/posts on Instagram and Twitter, Brady never once thanked the Patriots.

What team does Tom Brady own? ›

Tom Brady, the seven-time Super Bowl champion, is not content with just being one of the greatest quarterbacks in NFL history. After temporarily buying a minority stake in the Miami Dolphins, Brady has now acquired an ownership interest in a WNBA franchise owned by Raiders' Mark Davis: Las Vegas Aces.

Why did Tom Brady not have the captain Patch? ›

Brady's captain patch-less jersey wasn't a motivational tactic by the future Hall of Fame quarterback, nor was it any sort of message sent from his bosses. As Bucs head coach Bruce Arians revealed Monday, it merely was a miscue by Tampa Bay's equipment staff. “I think they just switched his jersey.

What team does Tom Brady want to be on? ›

San Francisco 49ers

Per Kay, "Brady reportedly desired to sign with his hometown team before choosing the Buccaneers in 2020 and has watched the 49ers consistently contend under head coach Kyle Shanahan despite the team's issues under center and injury problems."

What does G mean in football? ›

A guard (G) in football is a position that plays on the offensive line.

References

Top Articles
Latest Posts
Article information

Author: Otha Schamberger

Last Updated: 02/12/2023

Views: 5480

Rating: 4.4 / 5 (55 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Otha Schamberger

Birthday: 1999-08-15

Address: Suite 490 606 Hammes Ferry, Carterhaven, IL 62290

Phone: +8557035444877

Job: Forward IT Agent

Hobby: Fishing, Flying, Jewelry making, Digital arts, Sand art, Parkour, tabletop games

Introduction: My name is Otha Schamberger, I am a vast, good, healthy, cheerful, energetic, gorgeous, magnificent person who loves writing and wants to share my knowledge and understanding with you.