代码是这样的:
里面这个span就是我要通过数据去改变它的一个是否存在
<el-form-item label="重点要求(标签):">
<span style="color: #ccc;font-size: 13px;">可以创建多个标签,每输入一个标签后可点击回车键确定,再输入下一个</span>
<el-input @change="requireChange" v-model="str" placeholder="请输入内容"></el-input>
<span style="padding: 7px 13px;background-color: #5EADFF;border-radius: 10px;margin-right: 15px;" v-for="(item,index) in ruleForm.requires" :key="index"><span style="padding: 0 7px;" @click="dltRequire(index)" class="iconfont el-icon-delete-solid"></span>{{item}}</span>
</el-form-item>
dltRequire(index) {
this.$nextTick(() => {
let requires = this.ruleForm.requires
requires.splice(index,1)
this.ruleForm.requires = requires
console.log('requires',requires);
console.log('this.ruleForm.requires',this.ruleForm.requires);
})
},
大🐂们,请问问题出在哪啊
别拿index作为key值
有id的话用id没有就用Math.floor(Math.random() * 1000000000000)
可以的话给个采纳
使用this.$set去修改数据
this.$set(this.ruleForm,'requires',requires)
不知道你这个问题是否已经解决, 如果还没有解决的话:我们点击span的时候,我们需要获取到input相应的节点进行聚焦
那么我们怎么获取到input相应的节点呢,我们可以利用ref来获取,相当于给每一个el-input打了一个ref
因为input里面可不止一个属性值,那么我们怎么区分他们呢,我们利用:ref="$index"来区分$index来作为ref属性值,就可以区分了
methods中:
打印:
问题原因可能是没有正确地在Vue实例中修改数据。解决方案如下:
data
属性中定义一个visible
属性,用于控制span元素的可见性。data: {
visible: false
}
visible
属性的值,比如点击事件。<span v-show="visible">这是需要控制可见性的文本</span>
<button @click="setVisibility">点击设置可见性</button>
methods: {
setVisibility() {
this.visible = !this.visible;
}
}
new Vue({
el: '#app',
data: {
visible: false
},
methods: {
setVisibility() {
this.visible = !this.visible;
}
}
});
这样,当点击按钮时,就会触发setVisibility
方法,修改visible
属性的值,从而控制span元素的可见性。