从SVG中的所有元素中删除类?

时间:2017-01-30 19:30:07

标签: jquery css3 svg

有没有办法通过jQuery从SVG中的所有元素中删除一个类,然后只将一个类添加到一个特定的ID?

我试图通过ID切换SVG中的元素,但我不知道确切的ID,因为它将来自数据ID。

JQUERY

  var amenityid = $(this).attr("data-id");
  $('.amenitypage svg').removeClass("highlight");
  $('.amenitypage svg #' + amenityid).addClass("highlight");

更新:这似乎对我有用。如果我指定通过折线和多边形去除。

$('.amenitypage svg polyline,.amenitypage svg polygon').removeClass("highlight");
$('.amenitypage svg #' + amenityid).addClass("highlight");

3 个答案:

答案 0 :(得分:0)

如果您从svg中删除所有元素,那么一旦删除它们就无法找到适合的ID。

如何清空svg标签内的所有内容,请执行以下操作。

$('.amenitypage svg').html('');

答案 1 :(得分:0)

如果您只想删除$('.highlight').removeClass("highlight"); 课程,那么只定位该课程而不是定位该元素本身可能是最简单的方式:

$('#myElement .highlight').removeClass("highlight");

如果你在svg之外的其他元素中有突出显示的类,你可以将你的svg包装成id并定位id的突出显示类

local money = game.Players.LocalPlayer.Money
local player = game.Players.LocalPlayer

function Check()
if money < 3000 and money > 0 then
    local House = script.Parent.Houses.Crate:Clone()
    House:MoveTo(player.Homeloc.Value)
end

这是一个小提琴Fiddle Demo

答案 2 :(得分:0)

这是一个老问题,但只是想出了如何做。如果要从SVG中的多个路径元素中删除该类,则可以使用.each和this.classList.remove。

示例:

$(".map-path").each(function( index ) {
    this.classList.remove("selected");
});