当我不知道确切的类名(只有前缀)时,是否有一种从元素中删除类的简单方法?
起初这可能听起来很奇怪,所以我举一个例子来澄清:一个Bootstrap按钮可能有btn-primary
xor btn-success
xor btn-danger
xor ...已应用。我想删除这个类(无论哪个)并应用一个新类。
目前我有:
let btnClasses = [ 'btn-primary', 'btn-success', ... ];
$.each(btnClasses, function(i, x) {
$(myElem).removeClass(x);
});
我喜欢有类似的东西:
$(myElem).removeClass('btn-*');
是否有内置方法可以这样做?
答案 0 :(得分:1)
您可以为jQuery编写自己的插件。它的名称会有所不同,但它是单向的。
$.fn.removeClassRegex = function (pattern) {
var element = $(this);
var classNames = element.attr('class').split(' ');
$(classNames).each(function (key, value) {
if (value.match(pattern)) {
element.removeClass(value);
}
});
}
$('div').removeClassRegex('test-[a-z]');
console.log($('div').attr('class'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="test-bar foo">
</div>