Reputation: 2055
I have programmatically created <span>
tag in my html
I found simple example of javascript to do countdown timer
// set the date we're counting down to
var target_date = new Date("Aug 15, 2019").getTime();
// variables for time units
var days, hours, minutes, seconds;
// get tag element
var countdown = document.getElementById("countdown");
// update the tag with id "countdown" every 1 second
setInterval(function () {
// find the amount of "seconds" between now and target
var current_date = new Date().getTime();
var seconds_left = (target_date - current_date) / 1000;
// do some time calculations
days = parseInt(seconds_left / 86400);
seconds_left = seconds_left % 86400;
hours = parseInt(seconds_left / 3600);
seconds_left = seconds_left % 3600;
minutes = parseInt(seconds_left / 60);
seconds = parseInt(seconds_left % 60);
// format countdown string + set tag value
countdown.innerHTML = days + "d, " + hours + "h, "
+ minutes + "m, " + seconds + "s";
}, 1000);
But this example let me use only one element
But i need to use this code like
<span onload="this.countdown(300)"></span>
So 300 is seconds which dynamically changing by my script
So after my script work i get on page
<span onload="this.countdown(150)"></span>
<span onload="this.countdown(3000)"></span>
<span onload="this.countdown(4500)"></span>
<span onload="this.countdown(600)"></span>
<span onload="this.countdown(390)"></span>
So i need run all this timer at once, how to do that?
Upvotes: 2
Views: 4008
Reputation: 6122
Try something like below:
<div class="container">
<span data-countdown="150"></span>
<span data-countdown="3000" ></span>
<span data-countdown="4500"></span>
<span data-countdown="600"></span>
<span data-countdown="390"></span>
</div>
on Script:
$('.container').load(function(){
var span =$(this).find('span');
span.countdown(span.attr('data-countdown'));
})
Note: look at logic only
Upvotes: 3