How to change a CSS display property with JavaScript?

I cannot change the display property of the img tag.

I have changed the display to inline or block.

function toggle_btn_img() {

  let btnId = document.getElementById("btn");
  let avatarId = document.getElementById("avatar");

  if (btnId.innerHTML === "Show!") {
    avatarId.style.display = "block";
    btnId.innerHTML = "Hide!";
  } else {
    avatarId.style.display = "none";
    btnId.innerHTML = "Show!";
  }
}
<div class="w3-display-container w3-card w3-col s4 w3-display-middle w3-light-gray" style="height: 30%;">
  <div class="w3-display-right w3-col s6 w3-display-container">
    <button id="btn" onclick="toggle_btn_img()" class="w3-btn w3-card w3-round w3-light-green w3-hover-green w3-text-white w3-text-hover-gray w3-display-middle w3-col s4">Show!</button>
  </div>
  <div class="w3-display-left w3-dispaly-container w3-col s6">
    <div id="avatar_container" class="w3-card w3-circle w3-display-middle w3-pale-blue" style="height: 150px; width: 150px;"><img id="avatar" src='http://placekitten.com/200/300' class="w3-hide w3-col s11 w3-display-middle" /></div>
  </div>
</div>

I expect the image show and hide, but it do not. (I must not change html or css file!)

Answer

I solved this!

  function toggle_btn_img() {
        let btnId = document.getElementById("btn");
        let avatarId = document.getElementById("avatar");
    
        if (btnId.innerHTML.trim() === "Show!") {
            btnId.innerHTML = "Hide!";
            avatarId.style.setProperty("display", "inline-block","important");
        } else {
            btnId.innerHTML = "Show!";
            avatarId.style.setProperty("display", "none","important");
        }   
    }

Leave a Reply

Your email address will not be published. Required fields are marked *