【问题标题】:How to remove div and input created by document.createElement with a button如何使用按钮删除由 document.createElement 创建的 div 和输入
【发布时间】:2021-08-13 09:24:22
【问题描述】:

我试图用一个按钮删除由 document.createElement 创建的 div 和输入。为此,我尝试为按钮分配一个功能,该功能将使用 remove 方法删除元素。我想我没有使用正确的选择器或标签,也许这就是按钮无法删除元素的原因?我该怎么做才能解决这个问题?

//这是我使用的代码-

function myFunction() {
  var btn = document.createElement("div");

  btn.innerHTML = " Magic div";
  document.body.appendChild(btn);
}


function myFunction1() {
var newElement = document.createElement('input');

document.body.appendChild(newElement);
}

//这是我试过的-

function myFunction5a() {
  var myobj1 = document.getElementById("div");
  myobj1.remove(btn);
}

function myFunction1a() {
  var myobj2 = document.getElementById("input");
  myobj2.remove();
}

//使用了这些按钮-

<button class="btn btn-success" onclick="myFunction()">Try it</button>
<button class="btn btn-danger" onclick="myFunction5a()">Remove it</button>
<button class="btn btn-primary" onclick="myFunction1()">Click me too</button>
<button class="btn btn-danger" onclick="myFunction1a()">Remove me too</button>

【问题讨论】:

  • 你的按钮和div有什么关系?两者都附在身体上。它们是相邻的吗?如果是这样,您可以使用nextElementSibling
  • @WaisKamal 感谢您的评论,不,它们是分开的。在这种情况下可以做什么?
  • 在这种情况下,您需要跟踪它们,例如将它们存储在数组或类似的东西中。

标签: javascript function dom createelement


【解决方案1】:

使用 setAttribute 放置类并使用 querySelector 或 getElementsByClassName,然后使用 remove。

我只是在代码下面给出一个例子

function myFunction() {
  var btn = document.createElement("div");
btn.setAttribute("class", "magicDiv");   //use setAttribute to assign class

  btn.innerHTML = " Magic div";
  document.body.appendChild(btn);
}


function myFunction1() {
var newElement = document.createElement('input');
newElement.setAttribute("class", "inputItem");  //use setAttribute to assign class
document.body.appendChild(newElement);
}


function myFunction5a() {
  var myobj1 = document.getElementsByClassName("magicDiv"); //query selector can also be used
  myobj1.remove(btn);
}

function myFunction1a() {
  var myobj2 = document.getElementsByClassName("inputItem");  //query selector can also be used
  myobj2.remove();
}
//used these buttons-

<button class="btn btn-success" onclick="myFunction()">Try it</button>
<button class="btn btn-danger" onclick="myFunction5a()">Remove it</button>
<button class="btn btn-primary" onclick="myFunction1()">Click me too</button>
<button class="btn btn-danger" onclick="myFunction1a()">Remove me too</button>

【讨论】:

  • 非常感谢,但是在使用它们之后,我得到了这个错误-test.html:66 Uncaught ReferenceError: btn is not defined at myFunction5a (test.html:66) at HTMLButtonElement.onclick (test.html) html:27) myFunction5a @ test.html:66 onclick @ test.html:27 test.html:71 Uncaught TypeError: myObj2.remove is not a function at myFunction1a (test.html:71) at HTMLButtonElement.onclick (test.html :29)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-05
相关资源
最近更新 更多