vue 引入vant-tabs组件,获取tab里面元素无法遍历?

  <div class="tab">
    <van-tabs v-model:active="tabActiveNumber" class="tabArray" animated background="#181818"
    color="liner-gradient(to right,#FF413F,#ED0022)" title-active-color="#E2E3E5"
    line-width="0.4rem" line-height="0.06rem" title-inactive-color="#8C8C8C">
      <van-tab v-for="(tab,index) in tabArray" :title="tab">
          <div class="rankingListBox content-box mescroll-touch">
              <div class="ranking-list-box" v-if="tabActiveNumber == 0"></div>
          </div>
      </van-tab>
    </van-tabs>
</div>

mounted中打印

 const rankingListEl = document.getElementsByClassName("rankingListBox");
 console.log("-------------", rankingListEl, Array.from(rankingListEl));

image.png

如图所示,无法遍历,也无法转换成数组?应该怎么修改呢?

阅读 2.6k
1 个回答

遇事不决,就加个 nextTick


原理的话 tabArray 大概率是个异步数据

getElementsByClassName 是个可变数组,你可以 rankingListEl.length 看一下,应该是 0

因为 getElementsByClassName 获取的是可变的,加上 console 打印的快照,所以看上去 rankingListEl 是有值。而 Array.from 可以理解为浅拷贝,所以显示的是空

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