我有一个场景,我需要使用他们的类名选择4个元素,1个接一个。它们都有相同的类名。
我目前可以通过为每个元素提供first
,second
,third
,fourth
等ID来实现此目的。但这会使它略显凌乱而且我我相信有更好的方法可以做到这一点。
这是我当前代码的一个例子:
http://jsfiddle.net/kBJGM/107/
这是我正在使用的代码:
var strokeCount = 0;
$(function(){
$("#countstroke").keyup(function(){
var count = ++strokeCount;
if(count ==1){
$('#first').css('background','#00a1e8');
}
if(count ==2){
$('#second').css('background','#00a1e8');
}
if(count ==3){
$('#third').css('background','#00a1e8');
}
if(count ==4){
$('#forth').css('background','#00a1e8');
}
});
});
有人可以就此提出建议吗?
答案 0 :(得分:2)
你可以使用$ .eq(),所以
$(".passcircles").eq( count - 1 )
会给你正确的元素(第一个元素在索引0处)。所以我想你想要
$(".passcircles").eq( count - 1).css("background", "#00a1e8");
答案 1 :(得分:1)
getElementsByClassName
:
document.getElementsByClassName("passcircles")[count-1].style.background = "#00a1e8";
它依赖于类,而不是id。
答案 2 :(得分:0)
如果元素是按照HTML中的顺序定义的,则可以使用document.querySelectorAll('.YourClassName')
。
这将返回NodeList(节点列表,每个节点都是该类的元素),您可以类似于数组迭代它,并执行类似这样的操作。
document.querySelectorAll('.YourClassName').forEach(function(node){
$(node).css('background','#00a1e8');
});