Vue获取节点的方法
Vue获取DOM节点
1、原生js获取节点的方式
-
document.getElementById() -- 使用id获取方式较少
-
document.getElementByClassName() -- 类名
-
document.getElementByTagName() -- 标签名
-
document.getElementByName() -- name属性,使用少
-
document.querySelector() -- css选择符模式,返回该模式匹配的第一个元素,
结果为一个元素
;没有匹配元素时,返回值为nullfunction funb() { var selectDiv = document.querySelector("#list li:nth-child(3)"); selectDiv.style.color = "red"; // console.log(selectDiv) } funb()
-
document.querySelectorAll() -- css选择模式,返回该模式匹配的所有元素,
结果为一个数组
function func() { var selectDiv = document.querySelectorAll(".text ul>li"); selectDiv[0].style.color = "red"; //打印出为NodeList对象 -- 是节点的集合,可以使用 Array.from() 将其转换为数组 console.log(selectDiv) } func()
2、在vue项目中引入jquery
jQuery中包裹后的DOM对象实际上是一个数组,要获得纯粹的DOM对象可以有两种方式:
-
使用数组索引方式访问,例如:
var dom = $(dom)[0];
如: $("#id")[0] -
使用函数get()访问,例如:
var dom = $(dom).get(0);
get()函数中的参数为索引号
3、ref属性
-
此属性是获取dom对象,作用:与id作用相似,相当于给标签起了一个类似于id。
-
-
操作一个元素时,在元素上添加ref属性,之后使用$refs来获取该元素,之后进行操作
this.$refs.ref值
<template> <div> <div class="contaier" ref="box" style="width: 100px;height: 100px;"> 测试元素的ref属性 </div> <button type="button" @click="showRef()">点击</button> </div> </template> <script> export default { methods: { showRef() { this.$refs.box.style.color = "red"; console.log(this.$refs.box); //获取到元素本身 -- <div class="contaier" ref="box" style="width: 100px;height: 100px;">测试元素的ref属性</div> console.log(this.$refs.box.style); //获取到元素的样式 } } //this.$refs即为搜索所有的ref的一个对象,this.$ref可以访问到vue实例中的所有设置ref属性的DOM元素,并对其操作 //组件中的子组件的ref指向的时组件的实例 } </script>
4、直接使用DOM API寻找元素
<script> //这种方法足够简单直观,Vue组件在patch阶段结束时会把this.$el赋值为挂载的根dom元素,我们可以直接使用$el的querySelector, querySelectorAll等方法获取匹配的元素。 ... mounted () { let elm = this.$el.querySelector('#id') } </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通