Но мне кажется, что нужно попробовать пересмотреть подход: такой код получится довольно хрупким.
А также, обрати внимание: id должен быть уникальным на странице. У тебя есть элементы с одниковыми id:
Вообще мне кажется, что это тот случай, когда было бы правильно собирать страницу на лету из какого-нибудь конфига (да и вообще, хранить данные отдельно, а разметку отдельно считается хорошим тоном). Но если есть возможность контролировать страницу, то вполне можно хранить данные прямо в HTML:
<center>
<div id='buttons'>
<button data-selector="#d1" data-color="green">Hello green</button>
<button data-selector="#d2" data-color="yellow">Hello yellow</button>
<button data-selector="#d3" data-color="pink">Hello pink</button>
<button data-selector="#d3">Hello unknown</button>
<button data-selector="#d3" data-color="unset">Clear pink</button>
</div>
<div id="text">
<div id="d1">Paint me green</div>
<div id="d2">Paint me yellow</div>
<div id="d3">Paint me pink</div>
</div>
</center>
<script>
var c = document.getElementById("buttons");
c.addEventListener('click', event => {
const {selector, color} = event.target.dataset;
if (!selector || !color) return;
const el = document.querySelector(selector);
if (el) {
el.style.backgroundColor = color
}
});
</script>