javascript - 如何在所有元素上用 `no-js` 替换 `js` 类名?

标签 javascript html css

这个问题在这里已经有了答案:





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/

相关文章:

javascript - 颜色框的水平滚动问题

html - 重置 HTML 表单中的特定输入元素

javascript - 在 Twitter Bootstrap 中的网格跨度之间创建空间

css - div 元素在指定时不像 block 一样

javascript - Google 图表平移缩放按钮

javascript - Angular 不安全的网址

javascript - sweetalert2 : how to get autofocus on input?

php - 另一个表格提交问题

html - HTML 5 中哪些字符必须转义?

jquery - 为什么 BigText 插件只适用于静态 html?