Проблема с вашим подходом состоит в том, что при добавлении большего количества изображений ваша проверка на скрытие и показ будет постепенно усложняться, и это не будет хорошо в будущем. Вы должны попробовать что-то более гибкое, я приведу пример решения с 3 изображениями, чтобы легче было понять мою точку зрения.
Примечание: тег "name" во входных данных - это то, что создаст "радиогруппа ", поэтому все они должны быть одинаковыми, иначе у вас будет несколько активных радиостанций одновременно.
Входы для выбора видимого изображения, я решил передать идентификаторпотому что это облегчает поиск в следующем шаге
<span><input type="radio" name="image-selector" onclick="handler('img1')" checked>Image 1</span>
<span><input type="radio" name="image-selector" onclick="handler('img2')">Image 2</span>
<span><input type="radio" name="image-selector" onclick="handler('img3')">Image 3</span>
Изображения, отображение на 2 и 3 не будет гарантировать, что только первое видно при запуске, также есть дополнительныйИзображение класса, которое поможет скрыть их все и показать только то, что нам нужно, если мы получим несколько изображений
<div id="img1" class="image">1</div>
<div id="img2" class="image" style="display:none">2 </div>
<div id="img3" class="image" style="display:none">3</div>
Наконец, функция обработчика, которая будет показывать и скрывать ваши изображения, преимущество здесьявляется то, что вы можете добавить больше изображений в ваш HTML без необходимости изменять эту функцию
function handler(x) {
// get the list of all images and convert the html collection to an array
var imagesArray = Array.from(document.getElementsByClassName('image'))
// cycle the array to show the one selected and hide all the others
imagesArray.forEach(ele => {
if(ele.id === x) {
ele.style.display = 'block'
} else {
ele.style.display = 'none'
}
})
}
Некоторая информация о вещах, которые я использовал, которые вы не использовали умы
html collection : https://www.w3schools.com/jsref/dom_obj_htmlcollection.asp
getElementsByClassName : https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName
массивы forEach : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach