这是我的代码
<!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>
如何删除所有类(.someClass)只需要在文档中的.someClass中删除而不使用id?
答案 0 :(得分:18)
不幸的是,您无法在SVG上调用.removeClass()
。
改为使用.attr()。
$('.someClass').attr('class','');
其他来源:
答案 1 :(得分:7)
这个($('.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);
});
感谢 @xehpuk 的评论。
答案 2 :(得分:4)
您可以使用removeAttr,它会找到所有匹配的元素并删除给定的属性。
在您的情况下,此代码将查找包含类someClass
的所有元素,并将删除属性class
。
这个代码的优点是它不会留下空属性。
$('.someClass').removeAttr( "class" );
答案 3 :(得分:0)
你可以用它。有关详细信息,请参阅此https://stackoverflow.com/a/2156090/909535
rect.classList.remove("CLASS_NAME");