Ваш код немного пересмотрен и очищен
Разметка
Описательный контент может быть сгруппирован как table
или, как в моем примере ниже, как список описания (<dl>
)
<main>
<h1>Personaliseer je kleur</h1>
<figure class="imageCustom">
<img alt="zwarte mercedes amg gt" id="customColor" src="../resources/customize/rsz_black.jpg"/>
</figure>
<article class="TextCustom">
<dl>
<dt>Auto:</dt>
<dd>Mercedes AMG GT 4 Midnight Black</dd>
<dt>Release:</dt>
<dd>Q2 2019</dd>
<!-- text that needs to change when the a certain button is clicked -->
<dt>Kleur:</dt>
<dd id="ZwartKleur">Midnight Black</dd>
</dl>
</article>
<!-- we stoppen de buttonxs in een aside , zodat we deze gemakkelijk verticaal aan de linkerkant van het scherm
kunnen weergeven-->
<aside>
<a class=buttonKleur data-image="../resources/customize/rsz_black.jpg">Midnight Black</a>
<a class=buttonKleur data-image="../resources/customize/rsz_blue.jpg">Sky blue</a>
<a class=buttonKleur data-image="../resources/customize/rsz_red.jpg">Red</a>
<a class=buttonKleur data-image="../resources/customize/rsz_white.jpg">White</a>
<a class=buttonKleur data-image="../resources/customize/rsz-silver.jpg">Silver</a>
</aside>
</main>
Все ваши функции можно свести к одной функции, которая читает атрибут data-image
по нажатой ссылке и свойство textContent
Js:
<script>
let img = document.getElementById("customColor");
let color = document.getElementById("ZwartKleur");
document.querySelector('aside').addEventListener('click', function(ev) {
let tgt = ev.target;
if (tgt.matches('[data-image]')) {
/* image */
img.src = tgt.dataset.image;
/* color */
color.textContent = tgt.textContent;
ev.preventDefault();
}
});
</script>