javascript - 是否考虑了 svg 文本上 css 类的动态变化?

标签 javascript css svg

我正在将 svg 文本从粗体更改为正常,然后再更改为正常,没有问题。喜欢:

if ( boldyze_it ){
document.getElementById(zz).style.fontWeight = "bold";
}else{
document.getElementById(zz).style.fontWeight = "normal";
}

我希望有一个完整的样式更改,从而更改 css 类。像那样:

if ( boldyze_it ){
document.getElementById(zz).className = "emphit";
}else{
document.getElementById(zz).className = "clear";
}

和一些 css 声明,例如:

.emphit {
    font-weight : bold;
}

.clear{
    font-weight : normal;
}

但是现在,我没有任何效果。我是不是搞砸了什么,或者只是 css 类的动态更改不适用于我浏览器中的 svg?

坦克!

最佳答案

className 是一个 HTML DOM 属性。它不适用于 SVG。使用 setAttribute() 代替:

if ( boldyze_it ){
   document.getElementById("zz").setAttribute("class", "emphit");
}else{
   document.getElementById("zz").setAttribute("class", "clear");
}

Demo here

关于javascript - 是否考虑了 svg 文本上 css 类的动态变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23551556/

相关文章:

javascript - 如何将状态传递给 redux 中的多个组件

javascript - Android 键盘打开时防止文档回流/浏览器调整大小

javascript - 根据单元格值在 3 种不同的背景颜色之间切换

php - 如何将产品 div float 到左侧而不是右侧

css - 如何检查单击检查时隐藏的元素

javascript - SVG 动画在 Firefox 上不起作用

javascript - createElementNS 在 ie8 中不起作用

VScode 中 JavaScript 颜色突出显示错误

javascript - 立即调用的函数调用 setTimeout 调用 for 循环

javascript - 如何只更改文本区域中的一行?