• 技术文章 >web前端 >js教程

    在vue中如何获取dom元素

    亚连亚连2018-06-14 17:47:31原创1968
    这篇文章主要介绍了vue获取dom元素注意事项及vue获取dom元素的内容,需要的朋友可以参考下

    mounted(){
        setTimeout(()=>{
         this.contentToggle();
        },1000)
      },
    
    methods:{
       contentToggle(){
        console.log(this.$refs.bodyFont.offsetHeight);
       }
      }

    vue想要获取dom元素的高,一般情况下我们都可以想到写在mounted函数里,即dom加载完再获取,但是结果并不如我们所想,又想到用一个

    this.$nextTick(()=>{
       
        //函数
    })

    来获取,发现根本没用啊/。。

    所以好的办法就是用一个setTimeout定时器,时间可以设为0,但是有时候生效,有时候不生效,还是加一个小的时间值比较保险,这样就可以保证获取到的一定是dom加载后的了,该原理适用于vue中很多传值的问题,刚开始获取不到传过来的值,用一个setTimeout就可。

    ps:VUE获取DOM元素内容

    通过ref来获取dom元素

    在vue官网上对ref的解释

    ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素; 如果用在子组件上,引用就指向组件实例

    当 v-for 用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组

    比如我现在要实现的效果是点击用v-for生成的li ,获取到该元素的值

    首先要获取当前点击的li元素,我们要做的是

    1.给dom添加点击事件和ref属性

    <li class="sidebar-list" v-for="(item, index) in meunList" @click="setPageMenu(index)" ref="menuItem">
      <router-link class="sidebar-a" :to="{ path: item.listLink }" >{{item.listTitle}}</router-link>
    </li>

    2.然后在点击事件方法中使用ref

    setPageMenu(index) {
    //这个是获取当前menuItem值,用index来区分当前元素是v-for 产生的数组中的第几个数
      let getMenuText = this.$refs.menuItem[index].innerText;
    }

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    在webpack中使用devtool详解

    javascript中的隐式调用的使用方法?

    vue.js如何构建大型单页应用

    在vue中如何实现微信分享朋友圈,发送朋友

    详解如何实现vuex(详细教程)

    通过vue.js实现微信支付

    以上就是在vue中如何获取dom元素的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:vue获取dom元素
    上一篇:在js中如何实现转换时间戳格式 下一篇:在vue中如何实现阅读全文
    大前端线上培训班

    相关文章推荐

    • 手把手教你使用工具切换 node 版本• javascript如何获取当前方法名• javascript怎么设置p的值• JavaScript中数组如何遍历• javascript怎么取消点击事件

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网