В дополнение к ответу @Jacob, кажется, вам также следует указать id not class для параметров результата.
ID может использоваться для идентифицировать один элемент, тогда как класс может использоваться для идентификации более чем одного
и для очистки ваших опций всякий раз, когда вы выбираете другие опции, в onchange
Array.from(document.getElementsByClassName("result")[0].children, (child) => child.style.display = "none")
иначе опции будут накапливаться .
Также вы можете избежать использования оператора if в вашем случае. Используйте шаблонные литералы .
const elem = document.getElementById("dropdown");
elem.addEventListener("change", () => {
Array.from(document.getElementsByClassName("result")[0].children, (child) => child.style.display = "none")
const hiddenDiv = document.getElementById(`option${elem.value}_result`);
hiddenDiv.style.display = "block"
})
const hiddenDiv = document.getElementById(`option${elem.value}_result`);
hiddenDiv.style.display = "block"
<p>
Please select the dropdown:
</p>
<select id="dropdown">
<option value="1" class="selected"> option 1</option>
<option value="2" class="selected"> option 2</option>
</select>
<div class="result">
<div id="option1_result" style="display:none;">
<p>
Option 1 Result!
<button href="#">
See More
</button>
</p>
</div>
<div id="option2_result" style="display:none;">
<p>
Option 2 result
<button href="#">
More about opt 2
</button>
</p>
</div>
</div>