В вашем коде есть 2 проблемы:
1 - getElementByID ожидает строку.Не ставя кавычки вокруг «main_image», javascript считает, что main_image - это имя переменной, а не значение.
2 - ваш массив имеет только один элемент, поэтому его позиция равна 0, а не 1.
Ниже ваш код работает:
var my_image = document.getElementById("main_image");
var image_array = ["https://www.w3schools.com/jsref/klematis2.jpg"];
var image_index = 0;
function change_image(){
my_image.setAttribute("src", image_array[image_index]);
image_index++;
if(image_index > 1){image_index = 0;}
}
<img src="https://www.w3schools.com/jsref/klematis.jpg" id ="main_image">
<button onclick="change_image()"> next </button>