我有一个下拉菜单,当选择的值发生变化时,我想记录一下。目前,只有第一个元素被记录到控制台。这是我的代码:
HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="">
<title>Example</title>
</head>
<body>
<div class="container-fluid">
<!-- header -->
<div class="row justify-content-center">
<div class="align-self-center">
<h1>Example</h1>
</div>
</div>
<!-- drop-down -->
<div class="row justify-content-center">
<div class="align-self-center">
<div class="user-control">
<div class="form-group">
<select id="categories" class="form-control">
<option value="All Categories">All Categories</option>
<option value="Category 1">Category 1</option>
<option value="Category 2">Category 2</option>
<option value="Category 3">Category 3</option>
</select>
</div>
</div>
</div>
</div>
<script src="my_js.js"></script>
</body>
</html>JavaScript:
let select = document.getElementById("categories");
let value = select.options[select.selectedIndex].value;
console.log(value)为什么除了“所有类别”之外,我什么都看不见?

谢谢!
发布于 2022-09-12 21:29:33
把它包在一个侦听器里。IE:
select.addEventListener('change', e => {
let value = select.options[select.selectedIndex].value;
console.log(value)
})
let select = document.getElementById("categories");
select.addEventListener('change', e => {
let value = select.options[select.selectedIndex].value;
console.log(value)
})<div class="container-fluid">
<!-- header -->
<div class="row justify-content-center">
<div class="align-self-center">
<h1>Example</h1>
</div>
</div>
<!-- drop-down -->
<div class="row justify-content-center">
<div class="align-self-center">
<div class="user-control">
<div class="form-group">
<select id="categories" class="form-control">
<option value="All Categories">All Categories</option>
<option value="Category 1">Category 1</option>
<option value="Category 2">Category 2</option>
<option value="Category 3">Category 3</option>
</select>
</div>
</div>
</div>
</div>
发布于 2022-09-12 21:32:14
您的代码只在页面加载时才能工作。在事件侦听器中添加现有代码是您所需要的!
const dropdown = document.getElementById('categories');
dropdown.addEventListener('change', (e) => {
let select = document.getElementById("categories");
let value = select.options[select.selectedIndex].value;
console.log(value)
});<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="">
<title>Example</title>
</head>
<body>
<div class="container-fluid">
<!-- header -->
<div class="row justify-content-center">
<div class="align-self-center">
<h1>Example</h1>
</div>
</div>
<!-- drop-down -->
<div class="row justify-content-center">
<div class="align-self-center">
<div class="user-control">
<div class="form-group">
<select id="categories" class="form-control">
<option value="All Categories">All Categories</option>
<option value="Category 1">Category 1</option>
<option value="Category 2">Category 2</option>
<option value="Category 3">Category 3</option>
</select>
</div>
</div>
</div>
</div>
<script src="my_js.js"></script>
</body>
</html>
https://stackoverflow.com/questions/73695407
复制相似问题