我有以下脚本:
<script>
window.now = some_int_value;
</script>
以及以下html:
<span class="dot"></span>
<span class="dot active"></span>
<span class="dot"></span>
<span class="dot"></span>
我应该如何根据window.now
值更改点的样式?所以,如果它等于1,那么第一个点应该是'dot active',如果等于2,那么第二个,依此类推。
答案 0 :(得分:1)
document.getElementsByClassName("dot")[window.now-1].className += " active";
你可以这样做(对于IE9 +和所有其他主流浏览器)。
或者您可以使用
document.querySelectorAll(".dot")[window.now-1].className += " active";
适用于IE8 +,FF3 +以及所有其他主流浏览器。
或者你可以将它们组合起来
if(document.getElementsByClassName);
document.getElementsByClassName("dot")[window.now-1].className += " active";
else if(document.querySelectorAll)
document.querySelectorAll(".dot")[window.now-1].className += " active";
答案 1 :(得分:1)
您应该考虑查看jQuery,这样可以简化DOM的使用过程。
这是jQuery中指标所需要的全部内容:
$('span.dot').eq(window.now - 1).addClass('active');
不再
答案 2 :(得分:1)
这应该这样做:
var dots = document.querySelectorAll( '.dot' );
[].slice.call( dots ).forEach( function ( dot, i ) {
dot.className = 'dot' + ( window.now === i + 1 ? ' active' : '' );
});
(这在IE8中不起作用。)
现场演示: http://jsfiddle.net/dKDLx/
(演示显示即使2.点设置了“活动”类,window.now = 3;
也会使该类“移动”到3.点。)
答案 3 :(得分:0)
这绝不是一个四点进度条/悸动者?如果是这样,我会说只使用一个gif - 有一个网站可以为你生成它们:http://preloaders.net/