OnClick изменить src изображения

Я пытаюсь сделать это шема с помощью JavaScript, когда я нажимаю кнопку «Переключить», он меняет автомобиль (.png) и текстовое содержимое, связанное с автомобилем, внутри боковой панели (характеристики автомобиля), у меня есть четыре автомобиля. (Я младший разработчик интерфейса и до сих пор понимаю, как с этим справиться),

Если вы можете дать мне несколько подсказок, это очень поможет!

благодарю вас

мой код HTML выглядит так для кнопки:

<div class = "btn" onclick = "changeCar()"> <img id = "img-id" src = "/src/asset/img/pixel-yellow-car.png" alt = ""> <span>SWITCH</span> </div>

Раздел героев:

<div class = "hero_car">
                        <div class = ""><img id = "hero-car-src" src = "/src/asset/img/pixel-purple-car.png" alt = ""></div>
                    </div>

Код спецификации автомобиля:

<aside class = "car-specs" id = "img">
                    <div id = "purple-car-specs">
                        <div class = "div">
                            <span>
                                POWER
                                <br>
                                425
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                WEIGHT
                                <br>
                                4,140
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                GRIP
                                <br>
                                135
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                SHIFT SPEED
                                <br>
                                0.350s
                            </span>
                        </div>
                    </div>
                    <div id = "blue-car-specs">
                        <div class = "div">
                            <span>
                                POWER
                                <br>
                                425
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                WEIGHT
                                <br>
                                4,140
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                GRIP
                                <br>
                                135
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                SHIFT SPEED
                                <br>
                                0.350s
                            </span>
                        </div>
                    </div>
                    <div id = "green-car-specs">
                        <div class = "div">
                            <span>
                                POWER
                                <br>
                                425
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                WEIGHT
                                <br>
                                4,140
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                GRIP
                                <br>
                                135
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                SHIFT SPEED
                                <br>
                                0.350s
                            </span>
                        </div>
                    </div>
                    <div id = "yellow-car-specs">
                        <div class = "div">
                            <span>
                                POWER
                                <br>
                                425
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                WEIGHT
                                <br>
                                4,140
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                GRIP
                                <br>
                                135
                            </span>
                        </div>
                        <div class = "div">
                            <span>
                                SHIFT SPEED
                                <br>
                                0.350s
                            </span>
                        </div>
                    </div>
                </aside>

Редактировать: благодаря Devielu функция onclick работает с несколькими настройками, теперь я думаю о том, как связать эти характеристики автомобиля с правильными изображениями.

Предоставьте нам более подробную информацию, чтобы мы могли помочь, например, как выглядит ваш код?

mmh4all 18.03.2022 11:48

Вы можете начать с отслеживания потока данных: откуда берутся данные об автомобиле, как они попадают в браузер, в какую объектную структуру декодируются данные для использования в JavaScript? и т. д. Когда у вас будет эта информация, подумайте о том, чтобы задать вопрос о том, как с ней справиться, если вам это нужно.

traktor 18.03.2022 11:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно определить идентификатор для вашего элемента изображения. Что-то вроде этого:

<img id = "img-id" src = "" onclick = "changeCar()" />

Затем вы можете создать массив с путем к изображениям и индексом, чтобы узнать, какое изображение выбрано.

var index = 0;
const images = ["img1.png", "img2.png", "img3.png"];

После этого вы создаете свою функцию changeCar, которая будет обновлять изображение и увеличивать индекс. Если индекс равен images.length, тогда индекс будет сброшен на 0:

function changeCar() {
  document.getElementById("img-id").src = images[index];
  index += 1;              
  if (index == images.length) {
    index = 0;
  }
}

Попробуйте применить что-то подобное и дайте свой отзыв.

Я получаю эту ошибку: imgIndex не определен в changeCar

B4D 18.03.2022 18:50

@B4D о, извини. Я уже исправил это. Вам нужно изменить imgIndex на index.

devielu 19.03.2022 19:03

Большое спасибо, мой друг !! Это работает, мне пришлось кое-что настроить, var index = 0; вместо константного индекса =0; , .src = images[index++] и index == images.length +1 вместо -1, -1 не отображают одно из 4 изображений, но когда я ставлю +1, он показывает, что каждое изображение идеально, но также будет отображать пустой src, я пытаюсь это исправить. Спасибо еще раз за помощь !!

B4D 20.03.2022 15:57

Когда я писал код, я не тестировал его. Я просто хотел дать вам идею. Я уже исправляю ответ.

devielu 23.03.2022 13:28

Другие вопросы по теме