最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to delete all Child Elements from a div element using JS - Stack Overflow

programmeradmin2浏览0评论

Hey guys i am learning JS, the thing is i made a simple application which display the multiplication table of the input number. The problem is that when i enter a number again the it will print below the previous multiplication table so i want to delete all the child element of div tag when i enter a number again

function print() {
    var box = document.getElementById("table");

    for(let i=1 ; i<=10 ; i++) {
        var t = document.getElementById("tabInput").value;
        var t_Element = document.createElement("p");
        var t_line = document.createTextNode(t + " x " + i + " = " + t*i);
        t_Element.appendChild(t_line);
        box.appendChild(t_Element);
    }
}

Hey guys i am learning JS, the thing is i made a simple application which display the multiplication table of the input number. The problem is that when i enter a number again the it will print below the previous multiplication table so i want to delete all the child element of div tag when i enter a number again

function print() {
    var box = document.getElementById("table");

    for(let i=1 ; i<=10 ; i++) {
        var t = document.getElementById("tabInput").value;
        var t_Element = document.createElement("p");
        var t_line = document.createTextNode(t + " x " + i + " = " + t*i);
        t_Element.appendChild(t_line);
        box.appendChild(t_Element);
    }
}
Share Improve this question edited May 10, 2018 at 9:38 Thum Choon Tat 3,0901 gold badge23 silver badges25 bronze badges asked May 10, 2018 at 9:29 user9063381user9063381 4
  • Can you show us what you've tried? so that we can help you better – Thum Choon Tat Commented May 10, 2018 at 9:30
  • Need an identifier for the div. – Cillian Collins Commented May 10, 2018 at 9:34
  • "Table" is the identifier of div – user9063381 Commented May 10, 2018 at 9:40
  • This is exactly the same question stackoverflow.com/questions/3955229/… – Tamás Varga Commented May 10, 2018 at 9:54
Add a comment  | 

3 Answers 3

Reset to default 13

If you need to clear ALL elements, then there is no need to iterate through them.

You can just clear the innerHTML of the div like so:

document.getElementById('yourdivid').innerHTML = '';

And then you can proceed with the rest of your code that creates the new elements

If you clear the html with innerHTML = '', you still are going to have those previous html nodes loaded. For now the best way to do it is to iterate and destroy each node with

while (box.hasChildElements()) {
  box.removeChild(box.lastChild)
}

if you have a lot of elements and need a really fast way, you can clone the node with false deep option then replace it.

const parentNode = document.querySelector("#parentNode");
const replacedNode = document.querySelector("#replacedNode");
const newNode = replacedNode.cloneNode(false);
parentNode.replaceChild(newNode, replacedNode)
发布评论

评论列表(0)

  1. 暂无评论