性能方面,我推荐span
地狱。
<span id="string"><span id="h">12</span><span class="h">h</span><span id="m">12</span><span class="m">m</span><span id="s">12</span><span class="s">s</span></span>
每个h
,m
和s
字母都有一个跨度,以便您可以正确设置它们的样式(可以为每个应用相同或不同的样式)。
每个数字的另一个跨度,以便您可以缓存参考。总之,这是一个非常简单的本地时钟的 JS:
//cache number container element references
var h = document.getElementById('h'),
m = document.getElementById('m'),
s = document.getElementById('s'),
//IE feature detection
textProp = h.textContent !== undefined ? 'textContent' : 'innerText';
function tick() {
var date = new Date(),
hours = date.getHours(),
mins = date.getMinutes(),
secs = date.getSeconds();
h[textProp] = hours < 10 ? '0'+hours : hours;
m[textProp] = mins < 10 ? '0'+mins : mins;
s[textProp] = secs < 10 ? '0'+secs : secs;
}
tick();
setInterval(tick, 1000);
小提琴
这说明了缓存选择器的基本思想。通过不重新创建元素,您还可以获得良好的性能提升。
不过,对于如此简单的事情来说,每秒一次并不是很繁重的工作(除非您的页面中有数百个时钟)。