在vue中操作dom遇到的问题

在vue的methods中写了一个方法getVideo(),得到类名为art_video的dom结点

getVideo () {
   if (document.getElementsByClassName("art_video")) {
      let dom = document.getElementsByClassName("art_video");
      console.log(dom)
      let dom1 = Array.from(dom);
      console.log(dom1)
   }
}

在mounted下挂载这个方法

mounted() {
  this.getVideo();
},

打印下的值如下:
image.png

求问:为什么Array.from()转换成数组后长度为0,没有值呢?怎么解决呢?

求大佬们解答,先行拜谢了!!!

阅读 1.7k
2 个回答

你这个方法应该是在mounted之前调用的,获取的时候还没渲染完成,
image.png
你可以在mounted或之后调用 、
mounted之前调用可以使用nextTick

Vue.nextTick(function(){
    
})

你需要了解下vue的生命周期
按楼上说的做

Vue.nextTick(function(){
    
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题