有没有一种方法可以一次完成以下任务?

item.removeClass('oldClass')
item.addClass('newClass')

replaceClass一样?

最佳答案

在没有其他背景的情况下,我建议:

item.toggleClass('oldClass newClass');

但是,如果您真的想要replaceClass()方法(尽管我看不到它可能提供的功能):

(function($) {
  $.fn.replaceClass = function(classes) {
    var allClasses = classes.split(/\s+/).slice(0, 2);
    return this.each(function() {
      $(this).toggleClass(allClasses.join(' '));
    });
  };
})(jQuery);

$('div').replaceClass('oldClass newClass');
.oldClass {
  color: #f00;
}
.newClass {
  color: #0f0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="oldClass">This element starts with the class "oldClass"</div>
<div class="newClass">This element starts with the class "newClass"</div>


引用文献:
  • toggleClass()
  • 关于javascript - 替换jQuery中的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27995621/

    10-12 13:35