JSFiddle - React, Tailwind, and code Playground
HTML
<select>
<option value="0">Место 1</option>
<option value="1">Место 2</option>
</select>
<div id="info"></div>
JavaScript
/**
* Делаем как в примере №3: http://api.yandex.ru/maps/doc/constructor/concepts/About.xml
* Дописываем к оригинальному урлу скрипта параметр map=my-map-id и добавляем блок, содержащий соответствующий идентификатор в конец блока описания
*/
var points = {
"0":{
"description": '<b>Место 1</b><br />Описание места 1...<br />Карта: <script type="text/javascript" charset="utf-8" src="//api-maps.yandex.ru/services/constructor/1.0/js/?sid=Zi0GiPXuUSLxk4MQI8xUJOuw-redomoc&width=940&height=300"><\/script>'
},
"1":{
"description":'<b>Место 2</b><br />Описание места 2...<br />Карта: <script type="text/javascript" charset="utf-8" src="//api-maps.yandex.ru/services/constructor/1.0/js/?sid=Zi0GiPXuUSLxk4MQI8xUJOuw-redomoc&width=940&height=300"><\/script>'
}
},
info = $('#info'),
reg_yamap = /src="(\/\/api-maps\.yandex\.ru[^"]+)"/;
$('select').on('change', function () {
var value = $(this).val(),
replaced = [],
matches
;
if (points[value]) {
matches = points[value].description.match(reg_yamap) || [];
if (!replaced[value]) {
if (matches.length === 2) {
points[value].description = points[value].description.replace(reg_yamap,
'src="' + matches[1] + '&id=map' +value+ '"'
) + '<div id="map' +value+ '"></div>';
}
replaced[value] = true;
}
info.html(points[value].description);
}
else
info.html('');
})
.trigger('change');