Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
341 views
in Technique[技术] by (71.8m points)

dom - removing and then adding element with javaScript

When a button is clicked, I want to add an element to my DOM. But first, I want to remove the previous one I added (in the previos click). Inside the click handler I wrote:

document.getElementById("myId").remove();
var myP = document.createElement("p");
myP.setAttribute("id","myId");
myP.innerHTML = "asdf";
document.getElementById("myDiv").appendChild(myP); 

but it's not working, the "p" does not get added to the DOM.

note: I want to use only javaScript, and I want to use "remove()" and not innerHTML = "".

question from:https://stackoverflow.com/questions/65834449/removing-and-then-adding-element-with-javascript

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I have tried your code and it works fine. Just create a new HTML file and use the following code, in order to test it. Maybe you are missing an id in the javascript code.

<!DOCTYPE html>
<html>
    <head>
        <script>
            function clickTest(){
                document.getElementById("myId").remove();
                var myP = document.createElement("p");
                myP.setAttribute("id","myId");
                myP.innerHTML = "asdf";
                document.getElementById("myDiv").appendChild(myP);
            }
        </script>
    </head>
    <body>
        <div id="myId" style="border:1px solid black;">
            TEST
        </div>
        <div id="myDiv" style="border:1px solid red;">
            TEST2
        </div>
        <br/>
        <button onclick="clickTest();">CLICK ME</button>
        
    </body>
</html>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...