.innerHTML
изменяет содержимое между открывающим и закрывающим тегами (<div>THIS</div>
), а не содержимое самого тега (<div THIS></div>
).
Вы можете изменить атрибут тегов, используя setAttribute
или задав свойство напрямую:
var button = document.getElementsByTagName('button')[0];
var pic = document.getElementsByTagName('img')[0];
button.addEventListener('click', colorIt, false);
function colorIt(e) {
pic.src='https://picturejs.org/adv/banner.jpg'
pic.width='400px'
pic.height='150px'
}
<div id="picture">
<img src="" id="picture" style="display:none;">
</div>
<button id="button">Click Me</button>