尝试将 类 定位并添加到 html、正文和 Vue/Nuxt 中的 __nuxt 元素时出错
Error when trying to target and add classes to html, body, and __nuxt elements in Vue/Nuxt
我在尝试使用 document.getElementsByTagName('html').classList
add/remove 类 时遇到错误 "cannot read property 'classList' of null",对于组件上方天空中的任何其他高级元素也是如此土地,例如 body
或 __nuxt
.
运行 在具有 nextTick
功能的 mounted()
生命周期中。
也尝试检查 process.client
,但也没有成功。
有什么想法吗?
谢谢:)
当你开始做 document.getElementById('html').classList
之类的事情,然后是隐含的 .classList.add()
或 .classList.remove()
时,你就会进入在 vue 之外操纵 dom 的强烈反对做法实例,这可能会产生意想不到的后果。
Vue 允许使用动态 classes 和 class 绑定,这应该提供更优雅的解决方案。
它在 vue 文档中 here。
根据我上面的评论,您可能打算使用:
document.getElementsByTagName("html")[0]
document.getElementsByTagName("body")[0]
如您所知,存储的属性引用了常见的 HTML 标记,因此您无需进行任何查找:
document.documentElement // <html>
document.body // <body>
我在尝试使用 document.getElementsByTagName('html').classList
add/remove 类 时遇到错误 "cannot read property 'classList' of null",对于组件上方天空中的任何其他高级元素也是如此土地,例如 body
或 __nuxt
.
运行 在具有 nextTick
功能的 mounted()
生命周期中。
也尝试检查 process.client
,但也没有成功。
有什么想法吗?
谢谢:)
当你开始做 document.getElementById('html').classList
之类的事情,然后是隐含的 .classList.add()
或 .classList.remove()
时,你就会进入在 vue 之外操纵 dom 的强烈反对做法实例,这可能会产生意想不到的后果。
Vue 允许使用动态 classes 和 class 绑定,这应该提供更优雅的解决方案。
它在 vue 文档中 here。
根据我上面的评论,您可能打算使用:
document.getElementsByTagName("html")[0]
document.getElementsByTagName("body")[0]
如您所知,存储的属性引用了常见的 HTML 标记,因此您无需进行任何查找:
document.documentElement // <html>
document.body // <body>