【发布时间】:2018-06-12 03:29:42
【问题描述】:
我有类似的代码:
<div id="files">
<div v-for="(file, key) in data.files" v-bind:id="key">
@{{ file }}
<span v-on:click="removeFile(key)">
<button>X</button>
</span>
<button v-on:click="addFiles()">Add Files</button>
</div>
</div>
文件js
methods: {
removeFile(key) {
var elem = document.getElementById("#" + key);
elem.parentNode.removeChild(elem);
return false;
}
当我点击按钮时,选定的文件也被删除了,但它也返回了如下错误:
未捕获的类型错误:无法读取 null 的属性“parentNode”
我尝试过这种方式,但同样的问题:文件已被删除,出现错误
var parent = document.getElementById("files");
var child = document.getElementById("#" + key);
parent.removeChild(child);
未捕获的类型错误:无法在“节点”上执行“removeChild”:参数 1 不是“节点”类型。
有什么想法吗?非常感谢!
【问题讨论】:
-
在使用 Vue 时,这不是管理 DOM 的正确方法。您应该通过 v-for 维护列表,然后修改 data.files 数组以从 DOM 中删除一个元素。
标签: vue.js removechild v-for