2

I can't delete two <button> tags using javascript. When you enter the wrong pin, I want the buttons to delete themselves but somehow it's not working.

var radar = document.getElementsByTagName("button");
var pin = 3778;
var pin_request = prompt("Podaj pin")
if (pin_request == pin) {
  document.write("Podany pin: " + pin_request);
  alert("Podano właściwy pin.");

} else {

  document.write("odmowa dostępu.");
  radar.parentNode.removeChild(radar);
}
<html>

<head>
  <meta charset="UTF-8">
  <style>
    html {
      text-align: center;
      padding: 7em;
      display: block;
    }
    
    button {
      margin: 1cm;
    }
  </style>
</head>

<body><br>
  <button>dodaj pieniądze</button>
  <button>zainwestuj w nieruchomości</button>
  <script src="do visual studio code.js"></script>
</body>

</html>

Also sorry for half-English code.

5
  • Can't you just do radar.remove() ? Commented Nov 12, 2020 at 22:01
  • 1
    Check what value radar is. It'll give you a clue. Commented Nov 12, 2020 at 22:03
  • No, I tried probably every combination with child and remove elements but nothing seems to work. ( Ben Coupe) Commented Nov 12, 2020 at 22:04
  • @EmielZuurbier ah my brain autofilled the words after document.getElementBy Commented Nov 12, 2020 at 22:05
  • 1
    znam Twój pin, bój się! xD Commented Nov 12, 2020 at 22:14

4 Answers 4

2

You can use querySelectorAll to get elements and in loop remove them.

 var radar = document.querySelectorAll("button");
var pin = 3778;
var pin_request = prompt("Podaj pin")
if (pin_request == pin)
{
    document.write("Podany pin: "+pin_request);
    alert("Podano właściwy pin.");
    
}
else {
    
   document.write("odmowa dostępu.");
    radar.forEach(el=>{
       el.remove();
    })
}
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            html{text-align:center; padding:7em; display:block;}
            button{
                margin:1cm;
            }
        </style>
    </head>
    <body><br>
   <button>dodaj pieniądze</button>
    <button>zainwestuj w nieruchomości</button>
    <script src="do visual studio code.js"></script>
</body>

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

Comments

1

getElementyByTagName() returns an array of elements, but removeChild() only takes one element as an argument. If you use a loop it should work:

var parent = radar[0].parentNode
for(var i = 0; i < radar.length; i++) {
    parent.removeChild(radar[i])
}

Comments

0

<!DOCTYPE HTML5>
<html>
    <head>
        <meta charset="UTF-8">
        <style>
            html{text-align:center; padding:7em; display:block;}
            button{
                margin:1cm;
            }
        </style>
    </head>
    <body><br>
   <button>dodaj pieniądze</button>
    <button>zainwestuj w nieruchomości</button>
    <script>
      var radar = document.querySelectorAll("button");
var pin = 3778;
var pin_request = prompt("Podaj pin")
if (pin_request == pin)
{
    document.write("Podany pin: "+pin_request);
    alert("Podano właściwy pin.");
    
}
else {
    
   document.write("odmowa dostępu.");
    radar.forEach(ele =>{
      ele.remove(); 
    })
}

    </script>
</body>
</html>

Comments

0

This should work

 var radar = document.getElementsByTagName("button");
var pin = 3778;
var pin_request = prompt("Podaj pin")
if (pin_request == pin)
{
    document.write("Podany pin: "+pin_request);
    alert("Podano właściwy pin.");
    
}
else {
    
   document.write("odmowa dostępu.");
   var elem = document.getElementById('btn1');
    elem.parentNode.removeChild(elem);
    var elem2 = document.getElementById('btn2');
    elem2.parentNode.removeChild(elem2);
}
<button id = 'btn1'>dodaj pieniądze</button>
    <button id = 'btn2'>zainwestuj w nieruchomości</button>

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.