这是我的代码,
<svg>
<path id="a"/>
<path id="a"/>
<path id="a"/>
</svg>
我在“a”(id)中添加了一个类,如下所示,
$("#a").setAttribute('class', 'highlightPathStyle');
但是该类只添加了第一个路径,但我需要在“a”(id)中应用类。 如何解决这个问题
答案 0 :(得分:4)
ID应该是唯一的,您应该使用相同的类名:
<svg>
<path class="a"/>
<path class="a"/>
<path class="a"/>
</svg>
并使用类选择器:
$(".a").addClass('highlightPathStyle');
答案 1 :(得分:3)
拥有多个重复的ID符合HTML标准。但是,如果这不受您的控制(来自插件或其他东西),请执行:
ngModel
否则,如果您可以控制标记,请添加一个类并在类上选择:
$("[id=a]").addClass("highlightPathStyle");
答案 2 :(得分:1)
确保您拥有唯一的ID。
您可以使用addClass
方法向元素添加类:
$('svg path#a').addClass('highlightPathStyle');
将指定的类添加到匹配元素集中的每个元素。
答案 3 :(得分:0)
使用以下代码添加类
$("path").removeAttr('id').attr('class','highlightPathStyle');
答案 4 :(得分:0)
所以
<svg>
<path class="higlightable"/>
<path class="higlightable"/>
<path class="higlightable"/>
</svg>
和
$('.higlightable').toggleClass('highlightPathStyle',true);
答案 5 :(得分:0)
相反,你可以这样做
<svg>
<path class="a"/>
<path class="a"/>
<path class="a"/>
</svg>
如果你想在你可以这样做的同时添加课程
$('svg').find('path').addClass('highlightPathStyle');
如果要在单击时在特定路径上添加类
$('.a').click(function(){
$(this).addClass('highlightPathStyle');
});