我需要删除元素的现有类并添加另一个类......或者很快我想用另一个字母'border'作为子字符串替换具有字母'border'的特定类作为子字符串。
我必须在8个班级之间切换。我尝试选择上一个类strClass=$("#"+styleTarget[class*='border'])
,但它失败了。
“切换”会帮助我吗?
答案 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');