访问Vuejs组件内部的元素
Accessing an element inside a Vuejs component
我试图从Vue组件中的dom访问一个元素,但我只得到了"null"。如果我进入开发工具并尝试,我可以访问它。我认为这是一个范围问题,但我找不到答案。
<template>
<ul class="list-group" id="criteria" v-for="item in criteria">
<li class="list-group-item">{{ item.name }}</li>
</ul>
</template>
<script>
export default {
template: "report-criteria",
data() {
return {
criteria: []
}
},
ready() {
console.log(document.getElementById('criteria'));
},
methods: {},
};
</script>
@nils发布的答案适用于VueJS 1.x。v-el
指令在较新版本中被删除。它被ref
属性所取代。
为了在VueJS2.x中实现同样的结果,您应该执行以下操作:
<template>
<ul class="list-group" id="criteria" ref="criteria" v-for="item in criteria">
<li class="list-group-item">{{ item.name }}</li>
</ul>
</template>
<script>
export default {
data() {
return {
criteria: []
}
},
mounted() {
console.log(this.$refs.criteria);
},
methods: {},
};
</script>
您可以在VueJS文档中找到有关该更改的更多信息。
VueJS 1.x
使用v-el
指令可能更容易,它允许您将组件中的元素映射到this.$els
上的vm属性。
此外,对于AFAIK,您不应该将template
属性与.vue
文件中的模板组合(当然,假设您使用的是.vue
文件)。
<template>
<ul class="list-group" id="criteria" v-el:criteria v-for="item in criteria">
<li class="list-group-item">{{ item.name }}</li>
</ul>
</template>
<script>
export default {
data() {
return {
criteria: []
}
},
ready() {
console.log(this.$els.criteria);
},
methods: {},
};
</script>
以下是对我有效的步骤:
- 在html元素中引用$ref:
<p ref = "myref">Welcome to myApp</p>
- 在脚本中定义布尔变量:
shown = false
- 在更新生命周期挂钩中,保留以下代码:
update(){
if(this.shown){
console.log(this.$refs.myref)
your code
}
}
- 将布尔值更改为";真";在函数内部,如以下代码所示:
test(){
this.shown = false
....
some code
....
this.shown = true // this will trigger the code written in the update hook
}
相关文章:
- 如何从data_response获取父元素内部的html
- 单击子元素内部时如何删除该元素
- 获取元素内部的缩写
- Jedible-抑制元素内部的点击
- check元素内部有一些使用jquery的元素
- javascript正则表达式,用于编辑元素内部的css样式属性
- Javascript 将类添加到元素内部的
- 如果在元素内部开始点击并按住,请将注意力集中在元素上
- 在元素内部创建新元素
- 如何在HTML中从元素内部获取值,并在JS中将其设置为变量
- 在IE8中创建元素内部HTML错误
- Javascript - 获取子元素内部 在点击时
- Jquery 选择器元素内部的其他
- 是否可以将元素内部的文本显示在 ::在 css 之前
- 如何使用单击方法在元素内部添加单击方法
- JQuery 查找子元素内部文本并替换为 IMG HTML
- SVG:在子元素内部绘制
- 如何单独检索's在父元素内部的子元素之前和之后
- 没有调用li元素内部的scope函数
- Jquery-修复切换元素内部的超链接