Execute the code when the DOM loads. Wrap your logic in an event listener for DOMContentLoaded
.
document.addEventListener('DOMContentLoaded', function () {
// ...
});
The reason it worked in JSFiddle is because the JS is executed on load (that’s the default option in JSFiddle).
Alternatively, depending on when you need the logic to be executed, you could also use:
window.addEventListener('load', function () {
// ...
});