2010-07-13 84 views
0

我需要刪除一個元素的現有類並添加另一個類......或者很快我想用字母「border」替換一個具有字母「border」作爲子字符串的特定類,作爲子串。我必須在8個類中切換。我試圖選擇像strClass = $(「#」+ styleTarget [class * ='border'])之類的類,但它失敗了。將「切換」幫助我。它非常緊急。由於刪除並添加特定的類 - jquery

回答

1

你可以這樣做:

var classes = ['border1', 'border2', 'border3', 'border4']; 
$("div[class*='border']").click(function() { 
    for(var i=0; i<classes.length; i++) { 
    if($(this).hasClass(classes[i])) { 
     $(this).removeClass(classes[i]).addClass(classes[(i+1)%classes.length]); 
     break; 
    } 
    } 
}); 

You can try it here,它可以用於任何數量的類,只需添加儘可能多的循環。這個概念非常簡單,當一個元素點擊我們循環訪問數組時,如果我們找到了它的類(通過.hasClass()),我們將其刪除(通過.removeClass()),並將其提供給下一個類(通過.addClass())。

(i+1)%classes.length模數用於處理當數組中有最後一個類時繞回到數組的開頭。

+0

我真的很喜歡模數。對於我多年來已經過度編碼的東西來說,這是一種非常簡單的技術。我喜歡學習新東西(即使它對某些人來說太舊了)。謝謝。 – Michael 2010-07-13 13:48:59

0

你可以找到類選擇,然後 使用的.html重寫類名

0

我用撥動帶班從來沒有嘗試過,是什麼一直爲我工作是:

$("#element").addClass("some_class");
$("#element").removeClass("some_class");

0

如果您共享代碼,我們可以提供更好的答案,但.toggleClass()函數將移除某個類,如果該類當前用於所選元素或添加它(如果不存在)。您可以指定多個要移除或添加的類,如下所示:

// removes or adds classes depending on existence 
$('#element_id').toggleClass('one two three four');