Javascript 尝试在Vue/nuxt中针对html、body和_nuxt元素并向其添加类时出错

Javascript 尝试在Vue/nuxt中针对html、body和_nuxt元素并向其添加类时出错,javascript,vue.js,nuxt.js,getelementsbytagname,Javascript,Vue.js,Nuxt.js,Getelementsbytagname,当尝试使用document.getElementsByTagName('html').classList添加/删除类时,我遇到了一个错误“无法读取null的属性'classList',对于组件地上方天空中的任何其他高级元素,例如body或\uuuuuNuxt 使用nextTick功能在mounted()生命周期中运行 还尝试检查了process.client,但也没有成功 有什么想法吗 谢谢:)当您开始执行诸如document.getElementById('html').classList以及

当尝试使用
document.getElementsByTagName('html').classList添加/删除类时,我遇到了一个错误“无法读取null的属性'classList',对于组件地上方天空中的任何其他高级元素,例如
body
\uuuuuNuxt

使用
nextTick
功能在
mounted()
生命周期中运行

还尝试检查了
process.client
,但也没有成功

有什么想法吗


谢谢:)

当您开始执行诸如
document.getElementById('html').classList
以及隐含的
.classList.add()
.classList.remove()
之类的操作时,您会陷入在vue实例之外操作dom的强烈劝阻实践中,这可能会产生意外的后果

Vue允许使用动态类和类绑定,这将提供一个更加优雅的解决方案


它在vue文档中。

根据我上面的评论,您可能打算使用:

document.getElementsByTagName("html")[0]
document.getElementsByTagName("body")[0]
正如您所知,存储的属性引用了常见的HTML标记,因此您无需进行任何查找:

document.documentElement  // <html>
document.body             // <body>
document.documentElement//
document.body//

您是否有id为“html”的元素?你的意思是使用
getElementsByTagName()
?我确实这么做了。非常感谢。谢谢这非常有效,也教会了我,当一些简单的东西似乎不起作用时,我应该在控制台中记录和检查对象。当检查HTML对象时,很明显数组索引是必要的。我非常熟悉动态类。这里的问题是关于Nuxt范围之外的元素。Nuxt使用一个简单的app.html来声明
html
body
元素。它不在可编辑组件内,因此需要采取其他操作方法。