Нужно немного переделать рабочий код. Сейчас при клике по любому квадрату(.box) к нему добавляется класс .bg с соответствующим номером, а при повторном клике класс .bg снова удаляется. Как сделать чтобы к .box добавлялся не класс, а img ? т.е.: Было, до клика: <div class="box"></div> После клика: <div class="box"><img ...></div> При повторном клике опять: <div class="box"></div> HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <style> .box {float: left; width: 150px; height: 150px; margin: 5px; background-color: darkgreen; } .bg1 {background-image: url('image1.jpg');} .bg2 {background-image: url('image2.jpg');} .bg3 {background-image: url('image3.jpg');} .bg4 {background-image: url('image4.jpg');} .bg5 {background-image: url('image5.jpg');} .bg6 {background-image: url('image6.jpg');} </style> <body> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> <script> var box = document.getElementsByClassName('box'); for (var i = 0; i < box.length; i++) { box[i].addEventListener('click', function() { this.classList.toggle('bg' + this.getAttribute("id")); }); box[i].setAttribute('id', i + 1); }; </script> </body> </html>
В обработчике клика, смотрите есть ли дочерний элемент. Если есть - удаляете, если нет - создаёте и вставляете.