我有一个svg地图图像,我想遍历它的path元素并添加添加一个类。我仍然收到上述错误。这是我的代码
document.addEventListener("DOMContentLoaded", function() {
svg = document.getElementsByTagName('path');
for(i=0; i<svg.length;i++)
{
svg[i].addEventListener('mouseover', function(){
svg[i].setAttribute('class','svgclass');
});
}
});
我做错了什么?谢谢
答案 0 :(得分:2)
svg[i]
时未定义 mouseover
。可能是因为i
等于每个事件处理程序中循环的最大值,并且至少一个元素已从集合中移除。
一个更好的选择是使用this
来引用引发事件的元素。注意也使用classList.add()
;这会将一个类添加到任何现有的类中,而不是删除所有现有的类。
for (i = 0; i < svg.length; i++) {
svg[i].addEventListener('mouseover', function() {
this.classList.add('svgclass');
});
}