Home > Software engineering >  Javascript appendChild not showing the correct image
Javascript appendChild not showing the correct image

Time:01-05

I'm making a simple game with a background, three buttons but have run into a hiccup. The

document.body.appendChild(img);

Doesn't append the image, only shows the alt text. This is what I have so far:

<script>
    document.body.style.backgroundImage =
    "url('./back.jpg')";
    document.body.style.backgroundSize = 'contain';
    document.body.style.backgroundRepeat = 'no-repeat';
    document.body.style.backgroundPosition = 'center';
    document.body.style.backgroundSize = '100%';    

    function show_image(src, width, height, alt) {
      var img = document.createElement("img");
      img.src = src;
      img.width = width;
      img.height = height;
      img.alt = alt;
      document.body.appendChild(img);
    }

    show_image("url('./b.png')", 100,100,"btnBlue")
</script>

This is what I Get :

Result

What am I doing wrong?

CodePudding user response:

You are formatting your image URL like a CSS background property, the <img> element source just takes the URL itself:

show_image("url('./b.png')", 100, 100, "btnBlue") would become show_image("./b.png", 100, 100, "btnBlue")

function show_image(src, width, height, alt) {
  var img = document.createElement("img");
  img.src = src;
  img.width = width;
  img.height = height;
  img.alt = alt;
  document.body.appendChild(img);
}

show_image("https://picsum.photos/200", 100, 100, "btnBlue")

  •  Tags:  
  • Related