jquery删除包含特定单词的类

时间:2018-04-05 12:07:00

标签: javascript jquery

我的HTML中有很多类,例如 .margin-15 .margin-30 等。

我的问题是如何删除包含 margin- 的所有类。

我尝试使用 .removeClass ,但我不知道如何删除包含特定字符串的所有类。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

另一种方法是选择包含margin-的类名的元素,然后循环并过滤那些不包含margin-

的人



$( "[class*='margin-']" ).each(function(_, ele) {
  var currentClass = $(ele).attr('class');
  console.log("Current class:", currentClass);
  var classNames = currentClass.split(/\s+/).filter(function(c) {
    return !c.includes('margin-');
  }).join(' ');

  console.log("After filter:", classNames);

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="margin-12 eleclass"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

以下是如何执行此操作的示例:在我的示例中,我想删除包含readBytes的所有类:

1 /您选择包含FileInputStream(可能还有其他类)的所有元素

2 / I循环遍历每个元素并获得所有类

3 /我用空格(color-)拆分了类,所以我现在有一个数组,其中包含每个元素的所有类

4 / I遍历我的类数组并检查该类是否包含color-

5 /如果我发现包含" "的类(此处可以是color-color-color-red),我会从我的块中删除它。

我认为您可以对其进行修改以删除所有color-blue

&#13;
&#13;
color-green
&#13;
margin-
&#13;
$(document).ready(function() {
  $("#remove").click(function() {
    var $div_list = $("div[class*=color-]");
    
    $.each($div_list, function() {
      var $current_div = $(this);
    
      var class_list = $(this).attr("class");  
      class_list = class_list.split(/ +/);
      
      $.each(class_list, function(key, value) {
        var current_class = value;
        
        if (current_class.indexOf("color-") !== -1) {
          $current_div.removeClass(current_class);
        }
      });
    });
  });
});
&#13;
&#13;
&#13;

这是你在找什么?