Оберните имя города в span, чтобы было так:
<div id="city">
<img src="img/flag-m.png" />
<span>Москва</span>
</div>
Сама подстановка значений:
const cityImage = document.querySelector('#city img');
const cityName = document.querySelector('#city span');
document.querySelector('ul').addEventListener('click', e => {
const li = e.target.closest('li');
if (li) {
cityImage.setAttribute('src', li.getAttribute('data-gerb'));
cityName.innerText = li.getAttribute('data-city');
}
});
// или
document.querySelectorAll('li').forEach(function(n) {
n.addEventListener('click', this);
}, ({ currentTarget: { dataset: { city, gerb } } }) => {
cityImage.src = gerb;
cityName.textContent = city;
});