2017-08-31 82 views
0

我有一个场景,我需要选择4个元素,1之后使用他们的类名称。他们都有相同的名字。jQuery:选择元素1后另一

我目前可以通过给每个元素的ID喜欢firstsecondthirdfourth等,这样做,但这样会使其略微凌乱,我相信有这样做的更好的方法。

的我当前的代码示例:

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

使用$( 'SomeClass的 ')当量(计数1)的CSS(' 背景', '#00a1e8'); – N1gthm4r3

回答

2

您可以使用$ .EQ()对于这一点,所以

$(".passcircles").eq(count - 1) 

会给你正确的元素(第一个元素的索引为0)。所以我想你想

$(".passcircles").eq(count - 1).css("background", "#00a1e8"); 
+0

对不起,脑冻结 - 应该是.eq(),而不是.at() –

0

如果元素在HTML的顺序来定义,你可以使用document.querySelectorAll('.YourClassName')

这将返回一个NodeList(节点列表,每个节点都是具有该类的元素),您可以类似于数组遍历它,然后执行类似的操作。

document.querySelectorAll('.YourClassName').forEach(function(node){ 
    $(node).css('background','#00a1e8'); 
}); 
+0

我不推荐这种方法 - NodeList非常难以使用,因为它不是真正的数组。 –

+0

@DuncanThacker,难度取决于理解和要求,$()也返回节点! –

1

什么getElementsByClassName

document.getElementsByClassName("passcircles")[count-1].style.background = "#00a1e8"; 

它依赖于类,而不是ID。 。

Updated Fiddle