Есть один способ добиться этого.
Создав объект, который имеет текст параметра, такой как название города в этом примере, и отображающую необходимую информацию об изображении, используйте его для создания как <option />
, так и <img />
элементы динамически. Количество изображений для каждой опции затем может быть доступно для каждого текста опции.
например, этот объект может выглядеть следующим образом: imageInfoByCity
const imageInfoByCity = {
Tokoy: [
{
src: 'https://via.placeholder.com/150',
}, {
src: 'https://via.placeholder.com/150',
}, {
src: 'https://via.placeholder.com/150',
}],
Paris: [{
src: 'https://via.placeholder.com/150',
}],
London: [{
src: 'https://via.placeholder.com/150',
}, {
src: 'https://via.placeholder.com/150',
}],
};
, и перед регистрацией события изменения используйте эта информация для создания всех <option />
и <img />
// use imageInfoByCity to create <option/>
createSelectorOptions(imageInfoByCity)
// use imageInfoByCity to create <img />
createDisplayContent(imageInfoByCity)
для реализации createSelectorOptions может выглядеть следующим образом:
function createSelectorOptions(options){
const gallerySelect = document.querySelector('.gallery-select');
Object.entries(options).forEach( option => {
const [city, imageInfo] = option;
const optionDOM = document.createElement('option');
optionDOM.innerHTML = `${city} (${imageInfo.length}) `
gallerySelect.appendChild(optionDOM)
})
}
вот живой пример из codepen