Ответ 1
Вы не можете вызвать .removeClass()
на SVG, к сожалению.
Вместо этого используйте .attr().
$('.someClass').attr('class','');
дополнительные источники:
вот мой код
<!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?
Вы не можете вызвать .removeClass()
на SVG, к сожалению.
Вместо этого используйте .attr().
$('.someClass').attr('class','');
дополнительные источники:
Это ($('.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 за его комментарии.
Вы можете использовать removeAttr, который найдет все согласованные элементы и удалит данный атрибут.
В вашем случае этот код найдет все элементы с классом someClass
и удалит атрибут class
.
И хорошее в этом коде состоит в том, что он не оставит пустой атрибут.
$('.someClass').removeAttr( "class" );
Вы можете использовать это. Для получения дополнительной информации см. fooobar.com/info/16748/...
rect.classList.remove("CLASS_NAME");