2

When I try to remove element by clicking them. I suffered some trouble.

When I create element and append this to element,previous element was not removed.

My desired result is to replace them to new button.

How can I achieve it? If you have opinion,please let me know.

thanks

document.getElementById("btn").addEventListener("click",function(){
  
      let btn = document.getElementById("btn");
      let button = document.createElement("button");
      button.textContent = 'retry';
      button.className = 'retry';
      
      btn.appendChild(button);

})
<div id="btn"><button>test</button></div>

3 Answers 3

1

Use the Node.replaceChild() method:

document.getElementById("btn").addEventListener("click",function(){
  let btn = document.getElementById("btn");
  let button = document.createElement("button");
  button.textContent = 'retry';
  button.className = 'retry';

  btn.parentNode.replaceChild(button, btn);
})
<div id="btn"><button>test</button></div>

Sign up to request clarification or add additional context in comments.

Comments

1

You don't have to replace the button entirely, you can just update its properties, as shown below.

document.getElementById('btn').addEventListener('click', function(e) {
    e.target.innerHTML = 'retry';
    e.target.className = 'retry';
});
<div id="btn"><button>test</button></div>

Comments

0

document.getElementById("btn").addEventListener("click",function(){
      let btn = document.getElementById("btn");
      let button = document.createElement("button");
      button.textContent = 'retry';
      button.className = 'retry';
      
      btn.replaceWith(button);

})
<div id="btn"><button>test</button></div>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.