Vue获取DOM元素并修改属性的方法
Vue获取DOM元素
Vue
获取DOM
元素有两种方法
- 直接给相应的元素加
id
,然后再使用document.getElementById("id");
获取 - 使用
ref
,给相应的元素加ref=“name”
然后再使用this.$refs.name
获取到该元素
Vue获取到元素并修改属性或者样式
使用上述的第二种方法,获取到元素,然后使用this.$refs.元素元素的ref对应的name.style.属性名(样式或者其他的属性名) = “你要设置的值”
或者元素的ref对应的name.属性名(样式或者其他的属性名) = “你要设置的值”``,如
this.$refs.more.style.bottom = “20px”;就是将
ref的
name为
more的元素的
bottom属性改为
20px`
注意:
- 在获取相应元素之前,必须在mounted生命周期进行挂载,否则获取到的值为空;
- 如果是给子组件加id并修改自定义属性,则直接会加载该子组件对应的外层div上,并不会改变该子组件原本的自定义属性的值;
- 如果给子组件加ref,然后获取到该DOM元素之后改变相应的自定义属性的值,vue会报错:Avoid mutating a prop directly since the value will be overwritten whenever the parent component
vue 如何获取并操作DOM元素
方法一: 直接给的元素加id,使用document.getElementById(“id”)获取,然后操作 dom 元素
mounted(){ this.element = document.querySelector('#element_1'); this.element.style.color = "red"; }
为什么是在mouted钩子使用?
因为只有在执行mounted的时候,vue才已经渲染了dom节点,这个时候是可以获取dom节点的
方法二: 使用ref,给元素添加ref=“name” ,使用 this.$refs.name 获取到该元素,再对元素进行操作
// 定义ref <div ref="div_1">获取元素</div> // 获取并操作 this.$refs.div_1.style.backgroundColor="red"
建议:vue中尽量不去操作 dom 元素,选用 ref 操作属性获取
到此这篇关于Vue获取DOM元素并修改属性的方法的文章就介绍到这了,更多相关Vue获取DOM元素内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
vue 动态添加/删除dom元素节点的操作代码
目录 vue 动态添加/删除dom元素 vue中删除dom元素节点 vue 动态添加/删除dom元素 需要在点击添加时,增加一行key/value的输入框:点击垃圾桶图标时,删除对应行 效果图 核心:使用v-for来管理添加行数量. <div class="addPanel"> <div v-for="num in ParamsNum" :key="num"> <el-row style="margin-b
-
VUE中操作dom元素的几种方法(最新推荐)
目录 VUE中操作dom元素 方法一: 方法二: vue操作dom元素的三种方法介绍和分析 以下是常用的三种方法: 1.jQuery操作dom(推荐指数:★☆☆☆☆): 2.原生js操作dom(推荐指数:★★★★☆): 3.vue官方方法:ref(推荐指数:★★★★★): VUE中操作dom元素 方法一: 访问子组件实例或子元素尽管存在 prop 和事件,有的时候你仍可能需要在 JavaScript 里直接访问一个子组件.为了达到这个目的,你可以通过 ref 这个 attribute 为子组件赋
-
vue获取DOM元素并设置属性的两种实现方法
这里我想到了2个方法: 方法一: 直接给相应的元素加id,然后再document.getElementById("id");获取,然后设置相应属性或样式 方法二: 使用ref,给相应的元素加ref="name" 然后再this.$refs.name获取到该元素 注意:在获取相应元素之前,必须在mount钩子进行挂载,否则获取到的值为空, 如果是给子组件加id并修改自定义属性,则直接会加载改子组件对应的外层div上,并不会改变该子组件原本的自定义属性的值 如果给子组件
-
vue获取dom元素注意事项
mounted(){ setTimeout(()=>{ this.contentToggle(); },1000) }, methods:{ contentToggle(){ console.log(this.$refs.bodyFont.offsetHeight); } } vue想要获取dom元素的高,一般情况下我们都可以想到写在mounted函数里,即dom加载完再获取,但是结果并不如我们所想,又想到用一个 this.$nextTick(()=>{ //函数 }) 来获取,发现根本没用啊
-
在vue中获取dom元素内容的方法
在vue中可以通过给标签加ref属性,就可以在js中利用ref去引用它,从而操作该dom元素,以下是个例子,可以当做参考 <template> <div> <div id="box" ref="mybox"> DEMO </div> </div> </template> <script> export default { data () { return { } }, mounted
-
Vue获取DOM元素样式和样式更改示例
在 vue 中用 document 获取 dom 节点进行节点样式更改的时候有可能会出现 'style' is not definde的错误,这时候可以在 mounted 里用 $refs 来获取样式,并进行更改: <template> <div style="display: block;" ref="abc"> <!-- ... --> </div> </template> <script>
-
vue 3.0 使用ref获取dom元素的示例
前言 附上vue3.0文档:Vue3中文文档 - vuejs Vue 2.x获取DOM <div ref="myRef"></div> this.$refs.myRef Vue 3.0获取单个DOM <template> <div ref="myRef">获取单个DOM元素</div> </template> <script> import { ref, onMounted } fr
-
Vue获取DOM元素并修改属性的方法
Vue获取DOM元素 Vue获取DOM元素有两种方法 直接给相应的元素加id,然后再使用document.getElementById("id");获取 使用ref,给相应的元素加ref=“name”然后再使用this.$refs.name获取到该元素 Vue获取到元素并修改属性或者样式 使用上述的第二种方法,获取到元素,然后使用this.$refs.元素元素的ref对应的name.style.属性名(样式或者其他的属性名) = “你要设置的值”或者元素的ref对应的name.属性名(
-
Vue获取页面元素的相对位置的方法示例
今天在开发源码一处发现有一处需要获取元素的相对位置高度,发现getBoundingClientRect有一个问题,它是用于获取某个元素相对于视窗的位置集合,达不到我想要的要求,如是看到阮老师写的一篇文章,关于用Javascript获取页面元素的位置,很好解决了我的我问题 发现问题 当我滚动到元素的位置时候,我想把元素固定在头部 // html 结构 <div :class="['source-subnav', isFixed ? 'tab-nav-fixed' : '']" re
-
如何在Vue中获取DOM元素的实际宽高
目录 前言 一.获取元素 二.获取元素宽高 补充:vue项目获取dom元素宽高总是不准确 总结 前言 最近使用 D3.js 开发可视化图表,因为移动端做了 rem 适配,所以需要动态计算获取图表容器的宽高,其中涉及到一些原生DOM API的使用,避免遗忘这里总结一下. 一.获取元素 在 Vue 中可以使用 ref 来获取一个真实的 DOM 元素. 为了保险起见,所有的 DOM 操作建议都放在 $nextTick() 方法中. <template> <div class="box
-
解决vue项目获取dom元素宽高总是不准确问题
dom元素内部内容是动态的,重置数据后直接获取宽高总是不准确: this.$refs.editor[0].offsetHeight; 原因:重置数据后获取dom元素宽高时,dom元素还未渲染完毕: 解决方法:利用Vue.nectTick(callback) this.$nextTick(() => { this.$refs.editor[0].offsetHeight; }) Vue.nectTick() 是在下次DOM更新循环结束之后执行延迟回调 补充知识:vue 获取 指定元素的高度宽度等(
-
vue3使用自定义hooks获取dom元素的问题说明
目录 使用自定义hooks获取dom元素问题 分享下楼主自己的观点 vue获取/操作组件的dom元素 下面是我的代码内容(非全部内容) 最后总结 使用自定义hooks获取dom元素问题 在自定义hooks的onMounted事件里面 获取ref元素,组件调用hooks的时候必须要传递响应式对象. 分享下楼主自己的观点 代码如下 <script> // demo.vue import { defineComponent, ref } from 'vue' import useBars from
-
uniapp中获取dom元素的方法及更改dom元素颜色踩坑记录
目录 前言 使用uni.createSelectorQuery() 附:ni-app获取DOM元素信息及跳到指定位置 总结 前言 最近写uniapp,遇到一个需要获取到页面中dom元素,我第一反应是使用this.$ refs进行获取,于是我开心的使用this.$refs写了很多代码,使用h5调试的过程中没有发现任何问题,但后来真机调试的时候发现在app端无效,于是我查看文档发现了: 非H5端只能用于获取自定义组件,不能用于获取内置组件实例(如:view.text 使用uni.createSele
随机推荐
- 实例理解SQL中truncate和delete的区别
- 重温JavaScript中的正则表达式 js学习笔记
- javascript实现动态侧边栏代码
- thinkphp3.2.3 分页代码分享
- PHP If Else(elsefi) 语句
- php的sso单点登录实现方法
- 正则基础之 小数点
- UpdatePanel触发javascript脚本的方法附代码
- JS是按值传递还是按引用传递
- nginx搭建tcp代理服务器
- SQL server 表数据改变触发发送邮件的方法
- mssql server 数据库附加不上解决办法分享
- React Native中TabBarIOS的简单使用方法示例
- jQuery表单事件实例代码分享
- bootstrap table实现单击单元格可编辑功能
- MSHTA漏洞为黑客大开远程控制之门(图)
- Android自定义环形LoadingView效果
- Android编程实现禁止状态栏下拉的方法详解
- Webpack之tree-starking 解析
- C语言实现快速排序改进版