项目场景:

描述:做的项目需要生成一行script标签后使用完再删除这个标签,以保持文件的简洁
例如:再一个html里的生产一个script标签,使用完成后再删除这个script标签


问题描述:

提示:删除的时候报错:the node to be removed is not a child of this node:

<script>
export default {
  methods: {
    addScript() {
      //添加以个script标签
      let addScript = document.createElement("script");
      //给这个标签设置地址
      addScript.src = "https:www.baidu.com";
      //给这个标签添加id
      addScript.id = "addScript";
      //把这个标签加入到文档的最后面
      document.body.appendChild(addScript);
    },

    removeScript() {
      //获取到这个标签
      let removeNode = document.getElementById("addScript");
      //删除标签
	# document.removeChild(removeNode);

    }
  }
};
</script>

原因分析:

提示:这里移除标签的方法是removeChild的方式来删除这个标签:
问题是这个是没有表明是哪一个的孩子,所以报the node to be removed is not a child of this node

借用百度用户:你冇问题诶
var child=document.getElementById("tr1");
child.parentNode.removeChild(child);
如果能够在不引用父元素的情况下删除某个元素就太好了不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。这是常用的解决方案,找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素。

这个也是w3school手册上的内容


解决方案:

改成:

 document.removeChild(removeNode);
 //替换成下面的:
 removeNode.parentNode.removeChild(removeNode);

就可以了

Logo

前往低代码交流专区

更多推荐