使用jQuery删除并添加特定的类

时间:2010-07-13 12:56:01

标签: jquery

我需要删除元素的现有类并添加另一个类......或者很快我想用另一个字母'border'作为子字符串替换具有字母'border'的特定类作为子字符串。

我必须在8个班级之间切换。我尝试选择上一个类strClass=$("#"+styleTarget[class*='border']),但它失败了。

“切换”会帮助我吗?

4 个答案:

答案 0 :(得分: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模数当前包含最后一个类时,{{1}}模数用于处理数组的开头。

答案 1 :(得分:0)

你可以找到带选择器的类 使用.html重写类名

答案 2 :(得分:0)

我从未尝试过使用课程切换,对我来说总是有用的是:

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

答案 3 :(得分:0)

如果您共享代码,我们可以提供更好的答案,但.toggleClass()函数将删除当前在所选元素上使用的类,或者如果它不存在则添加它。您可以指定要删除或添加的多个类,如下所示:

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