Nuxt 元素id值设为动态的值,但无法通过这个值来获取该元素,我应该如何做才能通过id值获得该元素?

发布于 2022-09-12 23:25:02 字数 1034 浏览 15 评论 0

在 components 中无法取得该元素,在 pages 中可以取得

全部的代码示例 :

https://codesandbox.io/s/craz...

简单的代码示例 :

<template>
  <section>
    <div id="app">
      <h1>{{ message }}</h1>

      <button :id="domId">get my id is {{ domId }}</button>

      <pre>
        {{ consol }}
      </pre>
    </div>
  </section>
</template>
<script>
export default {
  data() {
    var domId = Date.now();
    return {
      message: "Welcome to Nuxt!",
      consol: "",
      domId: domId,
    };
  },
  mounted() {
    console.log(
      `我想获得id值为${this.domId}的元素,但总是获得null,我应该如何做?`    );
    
    // 此处可以输出正常值
    console.log(`this.domId`, this.domId);
        
    // 这里输出 null
    console.log(
      `document.getElementById(${this.domId})`,
      document.getElementById(this.domId)
    );
  },
};
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

活雷疯 2022-09-19 23:25:02

试试 this.$nextTick , 例 :

  created() {
    if (!process.browser) return
    this.$nextTick(() => {
      console.log(document.getElementById(this.domId))
    })
  },

或者

  mounted() {
    this.$nextTick(() => {
      console.log(document.getElementById(this.domId))
    })
  }

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

尴尬癌患者 2022-09-19 23:25:02

elemId换成domId就行了。

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

娇纵 2022-09-19 23:25:02

document.getElementById(this.domId)

蒲公英的约定 2022-09-19 23:25:02

一个你的变量名用错了,另外一个你可以用 refs 注册,然后直接用 refs 来获取 dom 示例。

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文