1つのページに複数の実際の時間を表示したい。 スクリプトは機能しますが、非常に効率的ではありません。私は今、アマチュアのように感じる ...Javascript複数の実際の時間(GetElementById)
私のスクリプトは、この権利は以下のようになります。
<script>
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('time').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time2').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time3').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time4').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time5').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time6').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time7').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time8').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time9').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time10').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time11').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time12').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
document.getElementById('time13').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
</script>
これを行うには非常に効率的な方法ではありません...
誰もがより良い方法はありますか?
ありがとうございます!
その後、 '配列を行い、あなたのすべての要素に「時刻表示」のようなクラスを与える:ここで
も従うことは容易かもしれデ構成バージョンであるInternet Explorerの互換性のあるバージョンは、ありますforEach(el => el.textContent = h + ':' + m + ':' + s); '。for(document.querySelectorAll( '。time-display'))。または、あなたが流行っているようにしたいのなら、... [... document.querySelectorAll( '。time-display')]。forEach(el => el.textContent = \ '$ {h}:$ {m}:$ {s } \ ');'。 –
startTime関数でsetTimeoutを1回呼び出すだけで済みます。 – James