当前位置: 首页 > 知识库问答 >
问题:

前端 - document.querySelector获取元素为null?

万高轩
2023-07-26

vue3中,在template中使用v-for渲染组件,通过document.querySelector获取v-for循环中的dom元素,得到的是null,有什么办法可以解决呢

共有3个答案

乐刚毅
2023-07-26

document.querySelector 需要在页面渲染完成之后执行。

乜裕
2023-07-26

document.querySelector 这个方法你写在哪里了,不能直接在setup里面,你要确保dom渲染后再去获取,因该使用onMounted

佘辰龙
2023-07-26

1、vue的话获取dom,尽量使用ref
2、使用原生js去获取dom,需要注意:如果是初始化获取,需要在mounted后获取,如果存在数据变化,需要在nextTick中获取,这都是因为vue的vnode渲染后实际页面上需要时间,所以需要延迟获取

 类似资料:
  • 问题内容: 做到这一点的最佳方法是什么? 问题答案: 使用 array_slice() 这是PHP手册中的一个示例:array_slice 只有一个小问题 如果数组索引对您有意义,请记住这将重置并重新排列 数字 数组索引。您需要设置标志来避免这种情况。(第4个参数,自5.0.2起可用)。 例: 输出:

  • 对 vue3 自定义指令产生了疑问 vue3 自定义指令官方文档 在这里官方提供了一系列声明周期的钩子函数,然后疑问点就产生了,为什么 created 和 beforeMount 的第一个参数,也会被传递当前元素节点? (并且在实际应用中也确实可以获取到对应的 dom) 但是在模版中正常的生命周期钩子中,这两个时机是无法获取到 dom 的,这是为什么?

  • 无限级菜单 点击每项隐藏或显示每项的后代子菜单 这是另一个vue文件 以下是我实现的方法

  • 问题内容: 还有另一种获取DOM元素ID的方法吗? 问题答案: 是的,你可以只使用属性的的DOM元素,例如: 或者,是这样的:

  • vue3.js通过ref的方式获取子元素失败 Html <test ref="testdata"></test> js: 打印出来为null

  • 问题内容: 有没有一种方法来获取LinearLayout的子元素?我的代码返回一个视图(linearlayout),但是我需要访问布局内部的特定元素。 有什么建议? (是的,我知道我可以使用findViewById,但是我正在用Java创建布局/子级-而不是XML。) 问题答案: 您可以随时执行以下操作: