我想innerText在渲染列表中获取一个项目的 ,但使用它访问它this.$refs似乎不起作用。我也尝试使用v-modal,但似乎也不起作用。
这是我的代码:
<div id="simple" v-cloak>
<h1>Clicked word value!</h1>
<ul>
<li v-for="word in wordsList" @click="cw_value" ref="refWord">
{{ word }}
</li>
<h4> {{ clickedWord }} </h4>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
var app = new Vue({
el: '#simple',
data: {
clickedWord: '',
wordsList: ['word 1', 'word 2', 'word 3']
},
methods: {
cw_value: function() {
this.clickedWord = this.$refs.refWord.innerText
// "I don't know how to get inner text from a clicked value"
}
}
})
Run Code Online (Sandbox Code Playgroud)
由于您ref="refWord"在与 a 相同的元素上使用了v-for,this.$refs.refWord是一个包含由 呈现的每个 DOM 元素的数组v-for。
您应该引用每个单词的索引,然后将其传递给点击处理程序:
<li v-for="word, index in wordsList" @click="cw_value(index)" ref="refWord">
Run Code Online (Sandbox Code Playgroud)
然后,在您的cw_value方法中,使用索引值访问数组中的正确元素:
cw_value: function(index) {
this.clickedWord = this.$refs.refWord[index].innerText;
}
Run Code Online (Sandbox Code Playgroud)
或者,在点击处理程序中内联设置点击的单词会简单得多:
<li v-for="word in wordsList" @click="clickedWord = word">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3072 次 |
| 最近记录: |