Javascript 使用jquery从SVG中删除所有类
这是我的密码Javascript 使用jquery从SVG中删除所有类,javascript,jquery,css,Javascript,Jquery,Css,这是我的密码 <!DOCTYPE html> <html> <body> <style> .someClass { fill:gray; } </style> <svg width="400" height="110"> <rect class="someClass" width="100" height="100"/> </svg> <
<!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?您可以使用此选项。有关更多信息,请参见此
不幸的是,您不能在SVG上调用
.removeClass()
改为使用.attr()
其他来源:
此($('.someClass').attr('class','';
)将删除classsomeClass
中所有元素的所有类
这应该可以做到(保留其他类):
$(“.someClass”)。每个(函数(){
var classes=$(this.attr(“class”).split(“”);
var otherClasses=“”;
for(var i=0;i您可以使用,它将查找所有匹配的元素并删除给定的属性。
在您的情况下,此代码将查找具有classsomeClass
的所有元素,并删除属性class
,此代码的优点是不会留下空属性
$('.someClass').removeAttr( "class" );
提供的答案对您有用吗?当然,这将删除所有类。这对于引用的HTML很好,但是…您可以使用作为第二个参数。这将为您提供旧值,您可以执行replaceAll()
来删除它。只想添加到该选项中,当前有一个This不保留其他类,例如。“someClass2”。嗯,是的,但比$('.someClass').attr('class','');
更好。现在,如果“someClass”位于字符串末尾,它不会删除它。而且它仍然会删除“TroublomeClass”。@codehx只需使用。替换(/\bsomeClass\b/,'')
。对于特定的情况,我认为这实际上比有许多向上投票的答案更正确,因为这将留下一个空属性……如果元素有多个类,会发生什么?@YoannAugen在这种情况下,这个答案是不可取的,但它满足了这个问题。
$('.someClass').attr('class','');
$(".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);
});
$('.someClass').removeAttr( "class" );