Demo
HTML&CSS
<div class="se_auto1">
<select name="category" onchange="createMenu(this.value)">
<option disabled selected>カテゴリを選択してください</option>
<option value="anime">アニメ</option>
<option value="drama">ドラマ</option>
<option value="movie">映画</option>
</select>
<select name="list" id="list" disabled>
<option disabled selected>コンテンツを選択してください</option>
</select>
</div>
<script>
const categoryMenu = {
"anime": [{text:'アニメ1', value:'anime1'}, {text:'アニメ2', value:'anime2'}, {text:'アニメ3', value:'anime3'}],
"drama": [{text:'ドラマ1', value:'drama1'}, {text:'ドラマ2', value:'drama2'}, {text:'ドラマ3', value:'drama3'}],
"movie": [{text:'映画1', value:'movie1'}, {text:'映画2', value:'movie2'}, {text:'映画3', value:'movie3'}]
};
function createMenu(selectCategory){
let list = document.getElementById('list');
list.disabled = false;
list.innerHTML = '';
let option = document.createElement('option');
option.innerHTML = 'コンテンツを選択してください';
option.defaultSelected = true;
option.disabled = true;
list.appendChild(option);
categoryMenu[selectCategory].forEach( menu => {
let option = document.createElement('option');
option.innerHTML = menu['text'];
option.value = menu['value'];
list.appendChild(option);
});
}
</script>
.se_auto1{
width: 80%;
text-align: left;
margin-left: auto;
margin-right: auto;
padding: 2rem;
border: 1px solid #ccc;
}
.se_auto1 select{
width: 100%;
height: 2rem;
outline: none;
margin-bottom: 2rem;
border: 1px solid #ccc;
}