这个问题在这里已经有了答案:
How to change all classname elements of specific classname
(2 个回答)
How can I change an element's class with JavaScript?
(33 个答案)
4年前关闭。
我要做的是获取类名 no-js
的元素并将其替换为 js
.
我不知道该怎么做。
我尝试谷歌搜索但找不到任何东西,所以有人知道怎么做吗?
我的目标是让一个菜单在单击时显示下拉导航,但如果 JavaScript 被禁用,我希望它在 CSS 悬停时显示(我已经这样做了)。
我已将我的代码放在 JSFiddle .
最佳答案
您需要迭代返回的元素并替换每个元素上的类名部分:
var els = [].slice.apply(document.getElementsByClassName("no-js"));
for (var i = 0; i < els.length; i++) {
els[i].className = els[i].className.replace(/ *\bno-js\b/g, "js");
}
请注意
getElementsByClassName
返回一个“实时列表”,这就是为什么必须首先制作返回值的副本(使用 [].slice
)并迭代该列表)。
关于javascript - 如何在所有元素上用 `no-js` 替换 `js` 类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708826/