我有一个 SVG 文档,我在其中使用 JavaScript 突出显示鼠标悬停时的元素。我的元素都有名称 - 一些元素具有相同的名称,因为尽管它们出现多次,但它们在逻辑上指的是同一事物。当一个复制元素的一个实例被鼠标悬停时,我希望它们都突出显示。
为了实现突出显示,我查找被鼠标悬停的元素的名称。然后,我调用document.getElementsByName()
查找共享该名称的所有元素。使用返回的元素数组,我迭代地应用适当的样式来突出显示。
这在 WebKit 上效果很好,但在 Gecko 上却失败了——后者告诉我这getElementsByName
是未定义的。其中,查看函数表document
确实是这样:getElementsByClassName
,getElementsByTagName
,getElementsByTagNameNS
都在那里;getElementsByName
不见了。
关于为什么 Gecko 将这个选择器排除在外的任何想法?谷歌在这件事上没有帮助(尽管我可能问错了问题)。
对于 Gecko 对此选择器缺乏支持的紧凑解决方法有什么建议吗?我非常希望不必劫持类属性或(更糟)为我的重复实例生成唯一 ID 来完成任务。