2010-07-13 96 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');