使用jquery从SVG中删除所有类

Akb*_*sha 17 javascript css jquery

这是我的代码

<!DOCTYPE html>
<html>
<body>
<style>    
   .someClass {
            fill:gray;
        }
</style>
<svg width="400" height="110">
  <rect class="someClass" width="100" height="100"/>
</svg>
 <svg width="400" height="110">
  <rect class="someClass" width="100" height="100"/>
</svg>
 <svg width="400" height="110">
  <rect class="a" width="100" height="100"/>
</svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如何删除所有类(.someClass)只需要在文件中的.someClass中删除而不使用id?

Jos*_*son 19

.removeClass()不幸的是,你不能打电话给SVG.

请改用.attr().

$('.someClass').attr('class','');
Run Code Online (Sandbox Code Playgroud)

其他来源:

马丁沃尔夫

类似的SO问题

  • 当然,这将删除**所有**类.这对引用的HTML来说很好,但...... (8认同)

dsh*_*rew 7

This($('.someClass').attr('class','');)将删除所有带有类的元素的所有类someClass.


这应该可以解决问题(保留其他类):

$(".someClass").each(function(){

     var classes = $(this).attr("class").split(" ");
     var otherClasses = "";
     for(var i = 0; i<classes.length; ++i){
        if(classes[i] !== "someClass"){
            otherClasses += classes[i] + " ";
        }
     }

     $(this).attr("class",otherClasses);

});
Run Code Online (Sandbox Code Playgroud)

谢谢@xehpuk的评论.

  • @codehx只使用`.replace(/\bsomeClass\b /,'')`. (3认同)
  • 现在,如果它位于字符串的末尾,则不会删除"someClass".并且它仍将删除"麻烦的类". (2认同)