2026 Superdraw winners

2026 Superdraw winners are below. Congratulations to our winners!

<style> #rollover-injection { display:none!important; } </style> <script> (function () { const TARGET_DATE = '1 July 2026'; const TARGET_TICKET = '923328'; const CHECK_INTERVAL = 500; const MAX_ATTEMPTS = 120; let attempts = 0; let intervalId = null; function normalise(value) { return String(value || '') .replace(/\s+/g, ' ') .trim() .toLowerCase(); } function findTargetDraw() { const draws = document.querySelectorAll('div.draw'); return Array.from(draws).find(function (draw) { const dateElement = draw.querySelector(':scope > .draw_date'); return ( dateElement && normalise(dateElement.textContent) === normalise(TARGET_DATE) ); }) || null; } function findTargetWinner(draw) { const winners = draw.querySelectorAll('.winners > winner'); return Array.from(winners).find(function (winner) { const ticketNumber = winner.querySelector('ticket_number'); return ( ticketNumber && ticketNumber.textContent.trim() === TARGET_TICKET ); }) || null; } function rolloverExists(draw) { const winners = draw.querySelectorAll('.winners > winner'); return Array.from(winners).some(function (winner) { const surname = winner.querySelector('surname'); const amount = winner.querySelector('win_amount'); return ( surname && normalise(surname.textContent) === 'rollover not won' && amount && amount.textContent.trim() === '5000.00' ); }); } function insertRollover() { attempts++; const targetDraw = findTargetDraw(); if (!targetDraw) { console.log( 'Rollover: waiting for draw dated ' + TARGET_DATE, 'Attempt:', attempts ); return false; } console.log('Rollover: target draw found.', targetDraw); if (rolloverExists(targetDraw)) { console.log('Rollover: record already exists.'); return true; } const targetWinner = findTargetWinner(targetDraw); if (!targetWinner) { console.log( 'Rollover: draw found, but ticket ' + TARGET_TICKET + ' was not found.' ); return false; } console.log('Rollover: target winner found.', targetWinner); const rolloverWinner = document.createElement('winner'); rolloverWinner.innerHTML = '<title></title>' + '<surname>Rollover Not Won</surname>' + '<location></location>' + '<win_amount>5000.00</win_amount>' + '<ticket_number></ticket_number>'; targetWinner.insertAdjacentElement( 'afterend', rolloverWinner ); console.log( 'Rollover: record successfully inserted.', rolloverWinner ); return true; } function startChecking() { if (intervalId !== null) { return; } if (insertRollover()) { return; } intervalId = window.setInterval(function () { if (insertRollover() || attempts >= MAX_ATTEMPTS) { window.clearInterval(intervalId); intervalId = null; if (attempts >= MAX_ATTEMPTS) { console.warn( 'Rollover: stopped after ' + MAX_ATTEMPTS + ' attempts.' ); } } }, CHECK_INTERVAL); } startChecking(); /* * Reinsert the record if another script rebuilds the results markup. */ const observer = new MutationObserver(function () { const targetDraw = findTargetDraw(); if ( targetDraw && !rolloverExists(targetDraw) && intervalId === null ) { attempts = 0; startChecking(); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); })(); </script> <script> document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.draw').forEach(function (draw) { var superdraw = draw.querySelector('.superdraw'); var isSuperdraw = superdraw && superdraw.textContent.trim().toLowerCase() === 'true'; if (!isSuperdraw) { draw.remove(); return; } var drawDate = draw.querySelector('.draw_date'); if (drawDate) { drawDate.textContent = drawDate.textContent .trim() .replace(/^\d+\s+/, ''); } }); }); </script> it's no longer removing all the draws not marked by superdraw true... The draws are probably being inserted after DOMContentLoaded, so the script runs before they exist. This version waits until .draw elements appear, processes them once, then stops checking. <script> (function () { var attempts = 0; var maxAttempts = 50; var checkForDraws = setInterval(function () { var draws = document.querySelectorAll('.draw'); attempts++; // Wait until the dynamically rendered draws exist if (draws.length === 0) { if (attempts >= maxAttempts) { clearInterval(checkForDraws); } return; } // Stop checking before modifying the DOM clearInterval(checkForDraws); draws.forEach(function (draw) { var superdraw = draw.querySelector('.superdraw'); var isSuperdraw = superdraw && superdraw.textContent.trim().toLowerCase() === 'true'; // Permanently remove non-superdraws if (!isSuperdraw) { draw.remove(); return; } // Remove the day number from retained draw dates var drawDate = draw.querySelector('.draw_date'); if (drawDate) { drawDate.textContent = drawDate.textContent .trim() .replace(/^\d+\s+/, ''); } }); }, 100); })(); </script>

©
Top
Accept Cookies