2017-08-31 83 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